diff --git a/.github/workflows/build-go.yml b/.github/workflows/build-go.yml index c0952f38a..1504c2390 100644 --- a/.github/workflows/build-go.yml +++ b/.github/workflows/build-go.yml @@ -7,32 +7,28 @@ on: pull_request: branches: ["*"] paths: - - 'operator/**' - - 'aggregator/**' - - 'common/**' - - 'core/**' - - 'metrics/**' - - '.github/workflows/build-go.yml' + - "operator/**" + - "aggregator/**" + - "common/**" + - "core/**" + - "metrics/**" + - ".github/workflows/build-go.yml" env: FFI_FOR_RELEASE: false jobs: build: runs-on: ubuntu-latest - + steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: - go-version: '1.22' + go-version: "1.22" cache: false - name: Build SP1 bindings run: make build_sp1_linux - name: Build Risc Zero go bindings run: make build_risc_zero_linux - - name: Build Halo2-KZG bindings - run: make build_halo2_kzg_linux - - name: Build Halo2-IPA bindings - run: make build_halo2_ipa_linux - name: Build Merkle Tree bindings run: make build_merkle_tree_linux - name: Build operator diff --git a/.github/workflows/test-halo2-ipa.yml b/.github/workflows/test-halo2-ipa.yml deleted file mode 100644 index 6eb3f6991..000000000 --- a/.github/workflows/test-halo2-ipa.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: test-halo2-ipa - -on: - merge_group: - push: - branches: [main] - pull_request: - branches: ["*"] - paths: - - 'operator/halo2ipa/**' - - '.github/workflows/test-halo2-ipa.yml' - -jobs: - test: - runs-on: ubuntu-latest - steps: - - name: Clear device space - run: | - sudo rm -rf "$AGENT_TOOLSDIRECTORY" - sudo rm -rf /usr/local/lib/android - sudo rm -rf /opt/ghc - sudo rm -rf /usr/local/.ghcup - sudo rm -rf /usr/share/dotnet - sudo rm -rf /opt/ghc - sudo rm -rf "/usr/local/share/boost" - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version: '1.22' - cache: false - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - name: Test Halo2-IPA Rust - run: make test_halo2_ipa_rust_ffi - - name: Test Halo2-IPA go bindings - run: make test_halo2_ipa_go_bindings_linux diff --git a/.github/workflows/test-halo2-kzg.yml b/.github/workflows/test-halo2-kzg.yml deleted file mode 100644 index 49e98ad2e..000000000 --- a/.github/workflows/test-halo2-kzg.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: test-halo2-kzg - -on: - merge_group: - push: - branches: [main] - pull_request: - branches: ["*"] - paths: - - 'operator/halo2kzg/**' - - '.github/workflows/test-halo2-kzg.yml' - -jobs: - test: - runs-on: ubuntu-latest - steps: - - name: Clear device space - run: | - sudo rm -rf "$AGENT_TOOLSDIRECTORY" - sudo rm -rf /usr/local/lib/android - sudo rm -rf /opt/ghc - sudo rm -rf /usr/local/.ghcup - sudo rm -rf /usr/share/dotnet - sudo rm -rf /opt/ghc - sudo rm -rf "/usr/local/share/boost" - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version: '1.22' - cache: false - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - name: Test Halo2-KZG Rust - run: make test_halo2_kzg_rust_ffi - - name: Test Halo2-KZG go bindings - run: make test_halo2_kzg_go_bindings_linux diff --git a/.gitignore b/.gitignore index e3627c36f..28c8fa531 100644 --- a/.gitignore +++ b/.gitignore @@ -11,5 +11,6 @@ batcher/aligned/batch_inclusion_responses/* **/aligned_verification_data **/broadcast volume +config-files/*.last_processed_batch.json nonce_*.bin diff --git a/Makefile b/Makefile index b521b8cf8..bcc17b937 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ .PHONY: help tests +SHELL := /bin/bash OS := $(shell uname -s) CONFIG_FILE?=config-files/config.yaml @@ -15,6 +16,11 @@ ifeq ($(OS),Darwin) BUILD_ALL_FFI = $(MAKE) build_all_ffi_macos endif +ifeq ($(OS),Linux) + export LD_LIBRARY_PATH := $(CURDIR)/operator/risc_zero/lib +endif + + FFI_FOR_RELEASE ?= true ifeq ($(FFI_FOR_RELEASE),true) @@ -32,7 +38,7 @@ submodules: git submodule update --init --recursive @echo "Updated submodules" -deps: submodules build_all_ffi ## Install deps +deps: submodules go_deps build_all_ffi ## Install deps go_deps: @echo "Installing Go dependencies..." @@ -79,10 +85,6 @@ anvil_upgrade_add_aggregator: @echo "Adding Aggregator to Aligned Contracts..." . contracts/scripts/anvil/upgrade_add_aggregator_to_service_manager.sh -anvil_add_type_hash_to_batcher_payment_service: - @echo "Adding Type Hash to Batcher Payment Service..." - . contracts/scripts/anvil/upgrade_add_type_hash_to_batcher_payment_service.sh - lint_contracts: @cd contracts && npm run lint:sol @@ -94,6 +96,8 @@ anvil_start_with_block_time: @echo "Starting Anvil..." anvil --load-state contracts/scripts/anvil/state/alignedlayer-deployed-anvil-state.json --block-time 7 +_AGGREGATOR_: + aggregator_start: @echo "Starting Aggregator..." @go run aggregator/cmd/main.go --config $(AGG_CONFIG_FILE) \ @@ -103,16 +107,21 @@ aggregator_send_dummy_responses: @echo "Sending dummy responses to Aggregator..." @cd aggregator && go run dummy/submit_task_responses.go + +__OPERATOR__: + operator_start: @echo "Starting Operator..." go run operator/cmd/main.go start --config $(CONFIG_FILE) \ 2>&1 | zap-pretty +operator_full_registration: operator_get_eth operator_register_with_eigen_layer operator_mint_mock_tokens operator_deposit_into_mock_strategy operator_whitelist_devnet operator_register_with_aligned_layer + operator_register_and_start: operator_full_registration operator_start build_operator: deps @echo "Building Operator..." - @go build -ldflags "-X main.Version=$(OPERATOR_VERSION) -r $(LD_LIBRARY_PATH):$(CURDIR)/operator/risc_zero/lib" -o ./operator/build/aligned-operator ./operator/cmd/main.go + @go build -ldflags "-X main.Version=$(OPERATOR_VERSION) -r $(LD_LIBRARY_PATH)" -o ./operator/build/aligned-operator ./operator/cmd/main.go @echo "Operator built into /operator/build/aligned-operator" update_operator: @@ -126,7 +135,6 @@ operator_valid_marshall_fuzz_macos: operator_valid_marshall_fuzz_linux: @cd operator/pkg && \ - LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/operator/risc_zero/lib \ go test -fuzz=FuzzValidMarshall operator_marshall_unmarshall_fuzz_macos: @@ -134,7 +142,6 @@ operator_marshall_unmarshall_fuzz_macos: operator_marshall_unmarshall_fuzz_linux: @cd operator/pkg && \ - LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/operator/risc_zero/lib \ go test -fuzz=FuzzMarshalUnmarshal bindings: @@ -186,9 +193,8 @@ operator_whitelist: @. contracts/scripts/.env && . contracts/scripts/whitelist_operator.sh $(OPERATOR_ADDRESS) operator_deposit_into_mock_strategy: - @echo "Depositing into strategy" + @echo "Depositing into mock strategy" $(eval STRATEGY_ADDRESS = $(shell jq -r '.addresses.strategies.MOCK' contracts/script/output/devnet/eigenlayer_deployment_output.json)) - @go run operator/cmd/main.go deposit-into-strategy \ --config $(CONFIG_FILE) \ --strategy-address $(STRATEGY_ADDRESS) \ @@ -207,7 +213,6 @@ operator_register_with_aligned_layer: operator_deposit_and_register: operator_deposit_into_strategy operator_register_with_aligned_layer -operator_full_registration: operator_get_eth operator_register_with_eigen_layer operator_mint_mock_tokens operator_deposit_into_mock_strategy operator_whitelist_devnet operator_register_with_aligned_layer __BATCHER__: @@ -365,50 +370,6 @@ batcher_send_burst_groth16: batcher/target/release/aligned @mkdir -p scripts/test_files/gnark_groth16_bn254_infinite_script/infinite_proofs @./batcher/aligned/send_burst_tasks.sh $(BURST_SIZE) $(START_COUNTER) -batcher_send_halo2_ipa_task: batcher/target/release/aligned - @echo "Sending Halo2 IPA 1!=0 task to Batcher..." - @cd batcher/aligned/ && cargo run --release -- submit \ - --proving_system Halo2IPA \ - --proof ../../scripts/test_files/halo2_ipa/proof.bin \ - --public_input ../../scripts/test_files/halo2_ipa/pub_input.bin \ - --vk ../../scripts/test_files/halo2_ipa/params.bin \ - --rpc_url $(RPC_URL) \ - --network $(NETWORK) - -batcher_send_halo2_ipa_task_burst_5: batcher/target/release/aligned - @echo "Sending Halo2 IPA 1!=0 task to Batcher..." - @cd batcher/aligned/ && cargo run --release -- submit \ - --proving_system Halo2IPA \ - --proof ../../scripts/test_files/halo2_ipa/proof.bin \ - --public_input ../../scripts/test_files/halo2_ipa/pub_input.bin \ - --vk ../../scripts/test_files/halo2_ipa/params.bin \ - --repetitions 5 \ - --rpc_url $(RPC_URL) \ - --network $(NETWORK) - -batcher_send_halo2_kzg_task: batcher/target/release/aligned - @echo "Sending Halo2 KZG 1!=0 task to Batcher..." - @cd batcher/aligned/ && cargo run --release -- submit \ - --proving_system Halo2KZG \ - --proof ../../scripts/test_files/halo2_kzg/proof.bin \ - --public_input ../../scripts/test_files/halo2_kzg/pub_input.bin \ - --vk ../../scripts/test_files/halo2_kzg/params.bin \ - --proof_generator_addr 0x66f9664f97F2b50F62D13eA064982f936dE76657 \ - --rpc_url $(RPC_URL) \ - --network $(NETWORK) - -batcher_send_halo2_kzg_task_burst_5: batcher/target/release/aligned - @echo "Sending Halo2 KZG 1!=0 task to Batcher..." - @cd batcher/aligned/ && cargo run --release -- submit \ - --proving_system Halo2KZG \ - --proof ../../scripts/test_files/halo2_kzg/proof.bin \ - --public_input ../../scripts/test_files/halo2_kzg/pub_input.bin \ - --vk ../../scripts/test_files/halo2_kzg/params.bin \ - --repetitions 5 \ - --proof_generator_addr 0x66f9664f97F2b50F62D13eA064982f936dE76657 \ - --rpc_url $(RPC_URL) \ - --network $(NETWORK) - __GENERATE_PROOFS__: # TODO add a default proving system @@ -467,10 +428,6 @@ upgrade_add_aggregator: ## Add Aggregator to Aligned Contracts @echo "Adding Aggregator to Aligned Contracts..." @. contracts/scripts/.env && . contracts/scripts/upgrade_add_aggregator_to_service_manager.sh -upgrade_batcher_payments_add_type_hash: ## Add Type Hash to Batcher Payment Service - @echo "Adding Type Hash to Batcher Payment Service..." - @. contracts/scripts/.env && . contracts/scripts/upgrade_add_type_hash_to_batcher_payment_service.sh - deploy_verify_batch_inclusion_caller: @echo "Deploying VerifyBatchInclusionCaller contract..." @. examples/verify/.env && . examples/verify/scripts/deploy_verify_batch_inclusion_caller.sh @@ -548,7 +505,6 @@ test_risc_zero_go_bindings_macos: build_risc_zero_macos test_risc_zero_go_bindings_linux: build_risc_zero_linux @echo "Testing RISC Zero Go bindings..." - LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/operator/risc_zero/lib \ go test ./operator/risc_zero/... -v generate_risc_zero_fibonacci_proof: @@ -579,67 +535,9 @@ test_merkle_tree_go_bindings_linux: build_merkle_tree_linux @echo "Testing Merkle Tree Go bindings..." go test ./operator/merkle_tree/... -v -__HALO2_KZG_FFI__: ## -build_halo2_kzg_macos: - @cd operator/halo2kzg/lib && cargo build $(RELEASE_FLAG) - @cp operator/halo2kzg/lib/target/$(TARGET_REL_PATH)/libhalo2kzg_verifier_ffi.dylib operator/halo2kzg/lib/libhalo2kzg_verifier.dylib - @cp operator/halo2kzg/lib/target/$(TARGET_REL_PATH)/libhalo2kzg_verifier_ffi.a operator/halo2kzg/lib/libhalo2kzg_verifier.a - -build_halo2_kzg_linux: - @cd operator/halo2kzg/lib && cargo build $(RELEASE_FLAG) - @cp operator/halo2kzg/lib/target/$(TARGET_REL_PATH)/libhalo2kzg_verifier_ffi.so operator/halo2kzg/lib/libhalo2kzg_verifier.so - @cp operator/halo2kzg/lib/target/$(TARGET_REL_PATH)/libhalo2kzg_verifier_ffi.a operator/halo2kzg/lib/libhalo2kzg_verifier.a - -test_halo2_kzg_rust_ffi: - @echo "Testing Halo2-KZG Rust FFI source code..." - @cd operator/halo2kzg/lib && cargo t --release - -test_halo2_kzg_go_bindings_macos: build_halo2_kzg_macos - @echo "Testing Halo2-KZG Go bindings..." - go test ./operator/halo2kzg/... -v - -test_halo2_kzg_go_bindings_linux: build_halo2_kzg_linux - @echo "Testing Halo2-KZG Go bindings..." - go test ./operator/halo2kzg/... -v - -generate_halo2_kzg_proof: - @cd scripts/test_files/halo2_kzg && \ - cargo clean && \ - rm -f params.bin proof.bin pub_input.bin && \ - RUST_LOG=info cargo run --release && \ - echo "Generating halo2 plonk proof..." && \ - echo "Generated halo2 plonk proof!" - -__HALO2_IPA_FFI__: ## -build_halo2_ipa_macos: - @cd operator/halo2ipa/lib && cargo build $(RELEASE_FLAG) - @cp operator/halo2ipa/lib/target/$(TARGET_REL_PATH)/libhalo2ipa_verifier_ffi.dylib operator/halo2ipa/lib/libhalo2ipa_verifier.dylib - @cp operator/halo2ipa/lib/target/$(TARGET_REL_PATH)/libhalo2ipa_verifier_ffi.a operator/halo2ipa/lib/libhalo2ipa_verifier.a - -build_halo2_ipa_linux: - @cd operator/halo2ipa/lib && cargo build $(RELEASE_FLAG) - @cp operator/halo2ipa/lib/target/$(TARGET_REL_PATH)/libhalo2ipa_verifier_ffi.so operator/halo2ipa/lib/libhalo2ipa_verifier.so - @cp operator/halo2ipa/lib/target/$(TARGET_REL_PATH)/libhalo2ipa_verifier_ffi.a operator/halo2ipa/lib/libhalo2ipa_verifier.a - -test_halo2_ipa_rust_ffi: - @echo "Testing Halo2-KZG Rust FFI source code..." - @cd operator/halo2ipa/lib && cargo t --release - -test_halo2_ipa_go_bindings_macos: build_halo2_ipa_macos - @echo "Testing Halo2-KZG Go bindings..." - go test ./operator/halo2ipa/... -v - -test_halo2_ipa_go_bindings_linux: build_halo2_ipa_linux - @echo "Testing Halo2-KZG Go bindings..." - go test ./operator/halo2ipa/... -v - -generate_halo2_ipa_proof: - @cd scripts/test_files/halo2_ipa && \ - cargo clean && \ - rm -f params.bin proof.bin pub_input.bin && \ - RUST_LOG=info cargo run --release && \ - echo "Generating halo2 plonk proof..." && \ - echo "Generated halo2 plonk proof!" +test_merkle_tree_old_go_bindings_macos: build_merkle_tree_macos_old + @echo "Testing Old Merkle Tree Go bindings..." + go test ./operator/merkle_tree_old/... -v __BUILD_ALL_FFI__: @@ -653,8 +551,6 @@ build_all_ffi_macos: ## Build all FFIs for macOS @$(MAKE) build_sp1_macos @$(MAKE) build_risc_zero_macos @$(MAKE) build_merkle_tree_macos - @$(MAKE) build_halo2_ipa_macos - @$(MAKE) build_halo2_kzg_macos @echo "All macOS FFIs built successfully." build_all_ffi_linux: ## Build all FFIs for Linux @@ -662,11 +558,8 @@ build_all_ffi_linux: ## Build all FFIs for Linux @$(MAKE) build_sp1_linux @$(MAKE) build_risc_zero_linux @$(MAKE) build_merkle_tree_linux - @$(MAKE) build_halo2_ipa_linux - @$(MAKE) build_halo2_kzg_linux @echo "All Linux FFIs built successfully." - __EXPLORER__: run_explorer: explorer_run_db explorer_ecto_setup_db @cd explorer/ && \ @@ -715,6 +608,10 @@ explorer_fetch_old_operators_strategies_restakes: @cd explorer && \ ./scripts/fetch_old_operators_strategies_restakes.sh 0 +explorer_create_env: + @cd explorer && \ + cp .env.dev .env + __TRACKER__: tracker_devnet_start: tracker_run_db @@ -743,3 +640,41 @@ tracker_dump_db: @cd operator_tracker && \ docker exec -t tracker-postgres-container pg_dumpall -c -U tracker_user > dump.$$(date +\%Y\%m\%d_\%H\%M\%S).sql @echo "Dumped database successfully to /operator_tracker" + +__TELEMETRY__: +open_telemetry_start: ## Run open telemetry services using telemetry-docker-compose.yaml + ## TODO(juarce) ADD DOCKER COMPOSE + @echo "Running telemetry..." + @docker compose -f telemetry-docker-compose.yaml up -d + +telemetry_start: telemetry_run_db telemetry_ecto_migrate ## Run Telemetry API + @cd telemetry_api && \ + ./start.sh + +telemetry_ecto_migrate: ## + @cd telemetry_api && \ + ./ecto_setup_db.sh + +telemetry_build_db: + @cd telemetry_api && \ + docker build -t telemetry-postgres-image . + +telemetry_run_db: telemetry_build_db telemetry_remove_db_container + @cd telemetry_api && \ + docker run -d --name telemetry-postgres-container -p 5434:5432 -v telemetry-postgres-data:/var/lib/postgresql/data telemetry-postgres-image + +telemetry_remove_db_container: + @docker stop telemetry-postgres-container || true && \ + docker rm telemetry-postgres-container || true + +telemetry_clean_db: telemetry_remove_db_container + @docker volume rm telemetry-postgres-data || true + +telemetry_dump_db: + @cd telemetry_api && \ + docker exec -t telemetry-postgres-container pg_dumpall -c -U telemetry_user > dump.$$(date +\%Y\%m\%d_\%H\%M\%S).sql + @echo "Dumped database successfully to /telemetry_api" + +telemetry_create_env: + @cd telemetry_api && \ + cp .env.dev .env diff --git a/aggregator/internal/pkg/aggregator.go b/aggregator/internal/pkg/aggregator.go index b9bb73194..f17591edc 100644 --- a/aggregator/internal/pkg/aggregator.go +++ b/aggregator/internal/pkg/aggregator.go @@ -12,7 +12,6 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/yetanotherco/aligned_layer/metrics" - "github.com/Layr-Labs/eigensdk-go/chainio/clients" sdkclients "github.com/Layr-Labs/eigensdk-go/chainio/clients" "github.com/Layr-Labs/eigensdk-go/logging" "github.com/Layr-Labs/eigensdk-go/services/avsregistry" @@ -80,8 +79,12 @@ type Aggregator struct { logger logging.Logger + // Metrics metricsReg *prometheus.Registry metrics *metrics.Metrics + + // Telemetry + telemetry *Telemetry } func NewAggregator(aggregatorConfig config.AggregatorConfig) (*Aggregator, error) { @@ -119,7 +122,7 @@ func NewAggregator(aggregatorConfig config.AggregatorConfig) (*Aggregator, error aggregatorPrivateKey := aggregatorConfig.EcdsaConfig.PrivateKey logger := aggregatorConfig.BaseConfig.Logger - clients, err := clients.BuildAll(chainioConfig, aggregatorPrivateKey, logger) + clients, err := sdkclients.BuildAll(chainioConfig, aggregatorPrivateKey, logger) if err != nil { logger.Errorf("Cannot create sdk clients", "err", err) return nil, err @@ -148,6 +151,9 @@ func NewAggregator(aggregatorConfig config.AggregatorConfig) (*Aggregator, error reg := prometheus.NewRegistry() aggregatorMetrics := metrics.NewMetrics(aggregatorConfig.Aggregator.MetricsIpPortAddress, reg, logger) + // Telemetry + aggregatorTelemetry := NewTelemetry(aggregatorConfig.Aggregator.TelemetryIpPortAddress, logger) + nextBatchIndex := uint32(0) aggregator := Aggregator{ @@ -169,6 +175,7 @@ func NewAggregator(aggregatorConfig config.AggregatorConfig) (*Aggregator, error logger: logger, metricsReg: reg, metrics: aggregatorMetrics, + telemetry: aggregatorTelemetry, } return &aggregator, nil @@ -209,11 +216,20 @@ func (agg *Aggregator) Start(ctx context.Context) error { const MaxSentTxRetries = 5 func (agg *Aggregator) handleBlsAggServiceResponse(blsAggServiceResp blsagg.BlsAggregationServiceResponse) { + agg.taskMutex.Lock() + agg.AggregatorConfig.BaseConfig.Logger.Info("- Locked Resources: Fetching task data") + batchIdentifierHash := agg.batchesIdentifierHashByIdx[blsAggServiceResp.TaskIndex] + batchData := agg.batchDataByIdentifierHash[batchIdentifierHash] + taskCreatedBlock := agg.batchCreatedBlockByIdx[blsAggServiceResp.TaskIndex] + agg.taskMutex.Unlock() + agg.AggregatorConfig.BaseConfig.Logger.Info("- Unlocked Resources: Fetching task data") + + // Finish task trace once the task is processed (either successfully or not) + defer agg.telemetry.FinishTrace(batchData.BatchMerkleRoot) + if blsAggServiceResp.Err != nil { - agg.taskMutex.Lock() - batchIdentifierHash := agg.batchesIdentifierHashByIdx[blsAggServiceResp.TaskIndex] + agg.telemetry.LogTaskError(batchData.BatchMerkleRoot, blsAggServiceResp.Err) agg.logger.Error("BlsAggregationServiceResponse contains an error", "err", blsAggServiceResp.Err, "batchIdentifierHash", hex.EncodeToString(batchIdentifierHash[:])) - agg.taskMutex.Unlock() return } nonSignerPubkeys := []servicemanager.BN254G1Point{} @@ -236,13 +252,7 @@ func (agg *Aggregator) handleBlsAggServiceResponse(blsAggServiceResp blsagg.BlsA NonSignerStakeIndices: blsAggServiceResp.NonSignerStakeIndices, } - agg.taskMutex.Lock() - agg.AggregatorConfig.BaseConfig.Logger.Info("- Locked Resources: Fetching merkle root") - batchIdentifierHash := agg.batchesIdentifierHashByIdx[blsAggServiceResp.TaskIndex] - batchData := agg.batchDataByIdentifierHash[batchIdentifierHash] - taskCreatedBlock := agg.batchCreatedBlockByIdx[blsAggServiceResp.TaskIndex] - agg.AggregatorConfig.BaseConfig.Logger.Info("- Unlocked Resources: Fetching merkle root") - agg.taskMutex.Unlock() + agg.telemetry.LogQuorumReached(batchData.BatchMerkleRoot) agg.logger.Info("Threshold reached", "taskIndex", blsAggServiceResp.TaskIndex, "batchIdentifierHash", "0x"+hex.EncodeToString(batchIdentifierHash[:])) @@ -278,6 +288,7 @@ func (agg *Aggregator) handleBlsAggServiceResponse(blsAggServiceResp blsagg.BlsA "merkleRoot", "0x"+hex.EncodeToString(batchData.BatchMerkleRoot[:]), "senderAddress", "0x"+hex.EncodeToString(batchData.SenderAddress[:]), "batchIdentifierHash", "0x"+hex.EncodeToString(batchIdentifierHash[:])) + agg.telemetry.LogTaskError(batchData.BatchMerkleRoot, err) } // / Sends response to contract and waits for transaction receipt @@ -294,6 +305,7 @@ func (agg *Aggregator) sendAggregatedResponse(batchIdentifierHash [32]byte, batc if err != nil { agg.walletMutex.Unlock() agg.logger.Infof("- Unlocked Wallet Resources: Error sending aggregated response for batch %s. Error: %s", hex.EncodeToString(batchIdentifierHash[:]), err) + agg.telemetry.LogTaskError(batchMerkleRoot, err) return nil, err } @@ -303,6 +315,7 @@ func (agg *Aggregator) sendAggregatedResponse(batchIdentifierHash [32]byte, batc receipt, err := utils.WaitForTransactionReceipt( agg.AggregatorConfig.BaseConfig.EthRpcClient, context.Background(), *txHash) if err != nil { + agg.telemetry.LogTaskError(batchMerkleRoot, err) return nil, err } @@ -312,6 +325,7 @@ func (agg *Aggregator) sendAggregatedResponse(batchIdentifierHash [32]byte, batc } func (agg *Aggregator) AddNewTask(batchMerkleRoot [32]byte, senderAddress [20]byte, taskCreatedBlock uint32) { + agg.telemetry.InitNewTrace(batchMerkleRoot) batchIdentifier := append(batchMerkleRoot[:], senderAddress[:]...) var batchIdentifierHash = *(*[32]byte)(crypto.Keccak256(batchIdentifier)) @@ -358,6 +372,7 @@ func (agg *Aggregator) AddNewTask(batchMerkleRoot [32]byte, senderAddress [20]by agg.logger.Fatalf("BLS aggregation service error when initializing new task: %s", err) } + agg.metrics.IncAggregatorReceivedTasks() agg.taskMutex.Unlock() agg.AggregatorConfig.BaseConfig.Logger.Info("- Unlocked Resources: Adding new task") agg.logger.Info("New task added", "batchIndex", batchIndex, "batchIdentifierHash", "0x"+hex.EncodeToString(batchIdentifierHash[:])) diff --git a/aggregator/internal/pkg/server.go b/aggregator/internal/pkg/server.go index 873259ecb..b4f1867cf 100644 --- a/aggregator/internal/pkg/server.go +++ b/aggregator/internal/pkg/server.go @@ -49,7 +49,6 @@ func (agg *Aggregator) ProcessOperatorSignedTaskResponseV2(signedTaskResponse *t "SenderAddress", "0x"+hex.EncodeToString(signedTaskResponse.SenderAddress[:]), "BatchIdentifierHash", "0x"+hex.EncodeToString(signedTaskResponse.BatchIdentifierHash[:]), "operatorId", hex.EncodeToString(signedTaskResponse.OperatorId[:])) - taskIndex := uint32(0) ok := false @@ -71,6 +70,7 @@ func (agg *Aggregator) ProcessOperatorSignedTaskResponseV2(signedTaskResponse *t *reply = 1 return nil } + agg.telemetry.LogOperatorResponse(signedTaskResponse.BatchMerkleRoot, signedTaskResponse.OperatorId) // Don't wait infinitely if it can't answer // Create a context with a timeout of 5 seconds diff --git a/aggregator/internal/pkg/telemetry.go b/aggregator/internal/pkg/telemetry.go new file mode 100644 index 000000000..6c2aa6b44 --- /dev/null +++ b/aggregator/internal/pkg/telemetry.go @@ -0,0 +1,134 @@ +package pkg + +import ( + "bytes" + "encoding/hex" + "encoding/json" + "fmt" + "io" + "net/http" + "net/url" + "time" + + "github.com/Layr-Labs/eigensdk-go/logging" +) + +type TraceMessage struct { + MerkleRoot string `json:"merkle_root"` +} + +type OperatorResponseMessage struct { + MerkleRoot string `json:"merkle_root"` + OperatorId string `json:"operator_id"` +} +type QuorumReachedMessage struct { + MerkleRoot string `json:"merkle_root"` +} + +type TaskErrorMessage struct { + MerkleRoot string `json:"merkle_root"` + TaskError string `json:"error"` +} + +type Telemetry struct { + client http.Client + baseURL url.URL + logger logging.Logger +} + +func NewTelemetry(serverAddress string, logger logging.Logger) *Telemetry { + client := http.Client{} + + baseURL := url.URL{ + Scheme: "http", + Host: serverAddress, + } + logger.Info("[Telemetry] Starting Telemetry client.", "server_address", + serverAddress) + + return &Telemetry{ + client: client, + baseURL: baseURL, + logger: logger, + } +} + +func (t *Telemetry) InitNewTrace(batchMerkleRoot [32]byte) { + body := TraceMessage{ + MerkleRoot: fmt.Sprintf("0x%s", hex.EncodeToString(batchMerkleRoot[:])), + } + if err := t.sendTelemetryMessage("/api/initTaskTrace", body); err != nil { + t.logger.Error("[Telemetry] Error in InitNewTrace", "error", err) + } +} + +func (t *Telemetry) LogOperatorResponse(batchMerkleRoot [32]byte, operatorId [32]byte) { + body := OperatorResponseMessage{ + MerkleRoot: fmt.Sprintf("0x%s", hex.EncodeToString(batchMerkleRoot[:])), + OperatorId: fmt.Sprintf("0x%s", hex.EncodeToString(operatorId[:])), + } + if err := t.sendTelemetryMessage("/api/operatorResponse", body); err != nil { + t.logger.Error("[Telemetry] Error in LogOperatorResponse", "error", err) + } +} + +func (t *Telemetry) LogQuorumReached(batchMerkleRoot [32]byte) { + body := QuorumReachedMessage{ + MerkleRoot: fmt.Sprintf("0x%s", hex.EncodeToString(batchMerkleRoot[:])), + } + if err := t.sendTelemetryMessage("/api/quorumReached", body); err != nil { + t.logger.Error("[Telemetry] Error in LogQuorumReached", "error", err) + } +} + +func (t *Telemetry) LogTaskError(batchMerkleRoot [32]byte, taskError error) { + body := TaskErrorMessage{ + MerkleRoot: fmt.Sprintf("0x%s", hex.EncodeToString(batchMerkleRoot[:])), + TaskError: taskError.Error(), + } + if err := t.sendTelemetryMessage("/api/taskError", body); err != nil { + t.logger.Error("[Telemetry] Error in LogTaskError", "error", err) + } +} + +func (t *Telemetry) FinishTrace(batchMerkleRoot [32]byte) { + // In order to wait for all operator responses, even if the quorum is reached, this function has a delayed execution + go func() { + time.Sleep(10 * time.Second) + body := TraceMessage{ + MerkleRoot: fmt.Sprintf("0x%s", hex.EncodeToString(batchMerkleRoot[:])), + } + if err := t.sendTelemetryMessage("/api/finishTaskTrace", body); err != nil { + t.logger.Error("[Telemetry] Error in FinishTrace", "error", err) + } + }() +} + +func (t *Telemetry) sendTelemetryMessage(endpoint string, message interface{}) error { + encodedBody, err := json.Marshal(message) + if err != nil { + t.logger.Error("[Telemetry] Error marshalling JSON", "error", err) + return fmt.Errorf("error marshalling JSON: %w", err) + } + + t.logger.Info("[Telemetry] Sending message.", "endpoint", endpoint, "message", message) + + fullURL := t.baseURL.ResolveReference(&url.URL{Path: endpoint}) + + resp, err := t.client.Post(fullURL.String(), "application/json", bytes.NewBuffer(encodedBody)) + if err != nil { + t.logger.Error("[Telemetry] Error sending POST request", "error", err) + return fmt.Errorf("error making POST request: %w", err) + } + defer resp.Body.Close() + + respBody, err := io.ReadAll(resp.Body) + if err != nil { + t.logger.Error("[Telemetry] Error reading response body", "error", err) + return fmt.Errorf("error reading response body: %w", err) + } + + t.logger.Info("[Telemetry] Response received", "status", resp.Status, "response_body", string(respBody)) + + return nil +} diff --git a/batcher/Cargo.lock b/batcher/Cargo.lock index aee59bbe7..09fda8a33 100644 --- a/batcher/Cargo.lock +++ b/batcher/Cargo.lock @@ -78,7 +78,7 @@ dependencies = [ [[package]] name = "aligned" -version = "0.1.0" +version = "0.8.0" dependencies = [ "aligned-sdk", "clap", @@ -90,7 +90,7 @@ dependencies = [ "rpassword", "serde", "serde_json", - "sha3 0.10.8", + "sha3", "tokio", "tokio-tungstenite 0.23.1", "url", @@ -112,9 +112,6 @@ dependencies = [ "env_logger", "ethers 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", "futures-util", - "halo2_backend", - "halo2_proofs 0.3.0", - "halo2curves", "hex", "lambdaworks-crypto", "log", @@ -123,7 +120,7 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "sha3 0.10.8", + "sha3", "sp1-sdk", "tokio", "tokio-tungstenite 0.21.0", @@ -143,7 +140,7 @@ dependencies = [ "serde", "serde_json", "serde_repr", - "sha3 0.10.8", + "sha3", "tokio", "tokio-tungstenite 0.23.1", "url", @@ -1228,16 +1225,6 @@ dependencies = [ "rayon", ] -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "block-padding", - "generic-array 0.14.7", -] - [[package]] name = "block-buffer" version = "0.10.4" @@ -1247,12 +1234,6 @@ dependencies = [ "generic-array 0.14.7", ] -[[package]] -name = "block-padding" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" - [[package]] name = "bls12_381" version = "0.7.1" @@ -1261,7 +1242,7 @@ checksum = "a3c196a77437e7cc2fb515ce413a6401291578b5afc8ecb29a3c7ab957f05941" dependencies = [ "ff 0.12.1", "group 0.12.1", - "pairing 0.22.0", + "pairing", "rand_core", "subtle", ] @@ -1578,7 +1559,7 @@ dependencies = [ "serde", "serde_derive", "sha2", - "sha3 0.10.8", + "sha3", "thiserror", ] @@ -1904,7 +1885,7 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", "const-oid", "crypto-common", "subtle", @@ -2091,7 +2072,7 @@ dependencies = [ "rand", "rlp", "serde", - "sha3 0.10.8", + "sha3", "zeroize", ] @@ -2151,7 +2132,7 @@ dependencies = [ "serde", "serde_json", "sha2", - "sha3 0.10.8", + "sha3", "thiserror", "uuid 0.8.2", ] @@ -2168,7 +2149,7 @@ dependencies = [ "regex", "serde", "serde_json", - "sha3 0.10.8", + "sha3", "thiserror", "uint", ] @@ -3053,49 +3034,7 @@ version = "0.1.0-beta.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a23c779b38253fe1538102da44ad5bd5378495a61d2c4ee18d64eaa61ae5995" dependencies = [ - "halo2_proofs 0.1.0", -] - -[[package]] -name = "halo2_backend" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=22b5d224f3cbeba917e48ba10c618a165e43cd23#22b5d224f3cbeba917e48ba10c618a165e43cd23" -dependencies = [ - "blake2b_simd", - "ff 0.13.0", - "group 0.13.0", - "halo2_middleware", - "halo2curves", - "rand_chacha", - "rand_core", - "rayon", - "serde", - "sha3 0.9.1", - "tracing", -] - -[[package]] -name = "halo2_frontend" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=22b5d224f3cbeba917e48ba10c618a165e43cd23#22b5d224f3cbeba917e48ba10c618a165e43cd23" -dependencies = [ - "blake2b_simd", - "ff 0.13.0", - "group 0.13.0", - "halo2_middleware", - "halo2curves", - "tracing", -] - -[[package]] -name = "halo2_middleware" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=22b5d224f3cbeba917e48ba10c618a165e43cd23#22b5d224f3cbeba917e48ba10c618a165e43cd23" -dependencies = [ - "ff 0.13.0", - "halo2curves", - "rayon", - "serde", + "halo2_proofs", ] [[package]] @@ -3112,47 +3051,6 @@ dependencies = [ "rayon", ] -[[package]] -name = "halo2_proofs" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=22b5d224f3cbeba917e48ba10c618a165e43cd23#22b5d224f3cbeba917e48ba10c618a165e43cd23" -dependencies = [ - "bincode", - "group 0.13.0", - "halo2_backend", - "halo2_frontend", - "halo2_middleware", - "halo2curves", - "log", - "rand_core", - "serde", -] - -[[package]] -name = "halo2curves" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db81d01d0bbfec9f624d7590fc6929ee2537a64ec1e080d8f8c9e2d2da291405" -dependencies = [ - "blake2b_simd", - "ff 0.13.0", - "group 0.13.0", - "hex", - "lazy_static", - "num-bigint 0.4.6", - "num-traits", - "pairing 0.23.0", - "pasta_curves 0.5.1", - "paste", - "rand", - "rand_core", - "rayon", - "serde", - "serde_arrays", - "static_assertions", - "subtle", -] - [[package]] name = "hashbrown" version = "0.12.3" @@ -3205,9 +3103,6 @@ name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] [[package]] name = "hex-literal" @@ -3723,21 +3618,19 @@ dependencies = [ [[package]] name = "lambdaworks-crypto" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb5d4f22241504f7c7b8d2c3a7d7835d7c07117f10bff2a7d96a9ef6ef217c3" +version = "0.10.0" +source = "git+https://github.com/lambdaclass/lambdaworks.git?rev=efd46f0b0aea3aa95d94bba7de86cb96611b40d3#efd46f0b0aea3aa95d94bba7de86cb96611b40d3" dependencies = [ "lambdaworks-math", "serde", "sha2", - "sha3 0.10.8", + "sha3", ] [[package]] name = "lambdaworks-math" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "358e172628e713b80a530a59654154bfc45783a6ed70ea284839800cebdf8f97" +version = "0.10.0" +source = "git+https://github.com/lambdaclass/lambdaworks.git?rev=efd46f0b0aea3aa95d94bba7de86cb96611b40d3#efd46f0b0aea3aa95d94bba7de86cb96611b40d3" dependencies = [ "serde", "serde_json", @@ -4163,12 +4056,6 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e296cf87e61c9cfc1a61c3c63a0f7f286ed4554e0e22be84e8a38e1d264a2a29" -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - [[package]] name = "open-fastrlp" version = "0.1.4" @@ -4547,15 +4434,6 @@ dependencies = [ "group 0.12.1", ] -[[package]] -name = "pairing" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" -dependencies = [ - "group 0.13.0", -] - [[package]] name = "parity-scale-codec" version = "3.6.12" @@ -4640,10 +4518,8 @@ dependencies = [ "blake2b_simd", "ff 0.13.0", "group 0.13.0", - "hex", "lazy_static", "rand", - "serde", "static_assertions", "subtle", ] @@ -5956,15 +5832,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde_arrays" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38636132857f68ec3d5f3eb121166d2af33cb55174c4d5ff645db6165cbef0fd" -dependencies = [ - "serde", -] - [[package]] name = "serde_derive" version = "1.0.204" @@ -6119,18 +5986,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "sha3" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" -dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", - "keccak", - "opaque-debug", -] - [[package]] name = "sha3" version = "0.10.8" @@ -8022,7 +7877,7 @@ dependencies = [ "rand", "serde", "sha2", - "sha3 0.10.8", + "sha3", "subtle", ] diff --git a/batcher/aligned-batcher/Cargo.toml b/batcher/aligned-batcher/Cargo.toml index 9db779649..88af04ecc 100644 --- a/batcher/aligned-batcher/Cargo.toml +++ b/batcher/aligned-batcher/Cargo.toml @@ -23,13 +23,10 @@ ethers = { tag = "v2.0.15-fix-reconnections", features = [ "ws", "rustls", ], git = "https://github.com/yetanotherco/ethers-rs.git" } -lambdaworks-crypto = { version = "0.7.0", features = ["serde"] } +lambdaworks-crypto = { git = "https://github.com/lambdaclass/lambdaworks.git", rev = "efd46f0b0aea3aa95d94bba7de86cb96611b40d3", features = ["serde"] } serde_yaml = "0.9.34" sp1-sdk = { git = "https://github.com/succinctlabs/sp1.git", rev = "v1.0.1" } risc0-zkvm = { git = "https://github.com/risc0/risc0", tag = "v1.0.1" } -halo2curves = { version = "0.6.0", default-features = false } -halo2_backend = { git = "https://github.com/yetanotherco/yet-another-halo2-fork.git", rev = "22b5d224f3cbeba917e48ba10c618a165e43cd23" } -halo2_proofs = { git = "https://github.com/yetanotherco/yet-another-halo2-fork.git", rev = "22b5d224f3cbeba917e48ba10c618a165e43cd23" } bincode = "1.3.3" aligned-sdk = { path = "../aligned-sdk" } ciborium = "=0.2.2" diff --git a/batcher/aligned-batcher/src/config/mod.rs b/batcher/aligned-batcher/src/config/mod.rs index 9f53631ee..47adce463 100644 --- a/batcher/aligned-batcher/src/config/mod.rs +++ b/batcher/aligned-batcher/src/config/mod.rs @@ -38,7 +38,6 @@ impl NonPayingConfig { #[derive(Debug, Deserialize)] pub struct BatcherConfigFromYaml { pub block_interval: u64, - pub batch_size_interval: usize, pub max_proof_size: usize, pub max_batch_size: usize, pub eth_ws_reconnects: usize, diff --git a/batcher/aligned-batcher/src/connection.rs b/batcher/aligned-batcher/src/connection.rs new file mode 100644 index 000000000..65bbcf384 --- /dev/null +++ b/batcher/aligned-batcher/src/connection.rs @@ -0,0 +1,68 @@ +use std::sync::Arc; + +use aligned_sdk::{ + communication::serialization::cbor_serialize, + core::types::{BatchInclusionData, ResponseMessage, VerificationCommitmentBatch}, +}; +use futures_util::{stream::SplitSink, SinkExt}; +use lambdaworks_crypto::merkle_tree::merkle::MerkleTree; +use log::{error, info}; +use serde::Serialize; +use tokio::{net::TcpStream, sync::RwLock}; +use tokio_tungstenite::{ + tungstenite::{Error, Message}, + WebSocketStream, +}; + +use crate::types::{batch_queue::BatchQueueEntry, errors::BatcherError}; + +pub(crate) type WsMessageSink = Arc, Message>>>; + +pub(crate) async fn send_batch_inclusion_data_responses( + finalized_batch: Vec, + batch_merkle_tree: &MerkleTree, +) -> Result<(), BatcherError> { + for (vd_batch_idx, entry) in finalized_batch.iter().enumerate() { + let batch_inclusion_data = BatchInclusionData::new(vd_batch_idx, batch_merkle_tree); + let response = ResponseMessage::BatchInclusionData(batch_inclusion_data); + + let serialized_response = cbor_serialize(&response) + .map_err(|e| BatcherError::SerializationError(e.to_string()))?; + + let Some(ws_sink) = entry.messaging_sink.as_ref() else { + return Err(BatcherError::WsSinkEmpty); + }; + + let sending_result = ws_sink + .write() + .await + .send(Message::binary(serialized_response)) + .await; + + match sending_result { + Err(Error::AlreadyClosed) => (), + Err(e) => error!("Error while sending batch inclusion data response: {}", e), + Ok(_) => (), + } + + info!("Response sent"); + } + + Ok(()) +} + +pub(crate) async fn send_message(ws_conn_sink: WsMessageSink, message: T) { + match cbor_serialize(&message) { + Ok(serialized_response) => { + if let Err(err) = ws_conn_sink + .write() + .await + .send(Message::binary(serialized_response)) + .await + { + error!("Error while sending message: {}", err) + } + } + Err(e) => error!("Error while serializing message: {}", e), + } +} diff --git a/batcher/aligned-batcher/src/eth/mod.rs b/batcher/aligned-batcher/src/eth/mod.rs index fe79db9ac..f50e14ecb 100644 --- a/batcher/aligned-batcher/src/eth/mod.rs +++ b/batcher/aligned-batcher/src/eth/mod.rs @@ -1,7 +1,7 @@ use std::str::FromStr; use std::sync::Arc; -use aligned_sdk::eth::batcher_payment_service::{BatcherPaymentServiceContract, SignatureData}; +use aligned_sdk::eth::batcher_payment_service::BatcherPaymentServiceContract; use ethers::prelude::k256::ecdsa::SigningKey; use ethers::prelude::*; use gas_escalator::{Frequency, GeometricGasPrice}; @@ -91,8 +91,7 @@ pub async fn get_batcher_payment_service( pub async fn try_create_new_task( batch_merkle_root: [u8; 32], batch_data_pointer: String, - padded_leaves: Vec<[u8; 32]>, - signatures: Vec, + proofs_submitters: Vec
, fee_params: CreateNewTaskFeeParams, payment_service: &BatcherPaymentService, ) -> Result { @@ -100,8 +99,7 @@ pub async fn try_create_new_task( .create_new_task( batch_merkle_root, batch_data_pointer, - padded_leaves, - signatures, + proofs_submitters, fee_params.fee_for_aggregator, fee_params.fee_per_proof, fee_params.respond_to_task_fee_limit, diff --git a/batcher/aligned-batcher/src/halo2/ipa/mod.rs b/batcher/aligned-batcher/src/halo2/ipa/mod.rs deleted file mode 100644 index 48f442cb0..000000000 --- a/batcher/aligned-batcher/src/halo2/ipa/mod.rs +++ /dev/null @@ -1,62 +0,0 @@ -use halo2_proofs::{ - plonk::{read_fr, read_params, verify_proof, VerifyingKey}, - poly::{ - commitment::Params, - ipa::{commitment::IPACommitmentScheme, multiopen::VerifierIPA, strategy::SingleStrategy}, - VerificationStrategy, - }, - transcript::{Blake2bRead, Challenge255, TranscriptReadBuffer}, - SerdeFormat, -}; -use halo2curves::bn256::G1Affine; -use log::error; -use std::io::BufReader; - -pub fn verify_halo2_ipa(proof: &[u8], public_input: &[u8], verification_key: &[u8]) -> bool { - // For Halo2 the `verification_key` contains the serialized cs, vk, and params with there respective sizes serialized as u32 values (4 bytes) => 3 * 4 bytes = 12 followed by the concatenated variable length buffers: - // We therefore require that the `verification_key` is greater than 12 bytes and treat the case that buffer lengths and buffers themselves are 0 size as false. - // [ cs_len | vk_len | vk_params_len | cs_bytes | vk_bytes | vk_params_bytes ]. - if proof.is_empty() || verification_key.len() <= 12 || public_input.is_empty() { - error!("Input buffer length zero size"); - return false; - } - - let Ok((cs_bytes, vk_bytes, vk_params_bytes)) = read_params(verification_key) else { - error!("Failed to deserialize verifiation parameter buffers from parameters buffer"); - return false; - }; - - let Ok(cs) = bincode::deserialize(cs_bytes) else { - error!("Failed to deserialize constraint system"); - return false; - }; - - let Ok(vk) = - VerifyingKey::::read(&mut BufReader::new(vk_bytes), SerdeFormat::RawBytes, cs) - else { - error!("Failed to deserialize verification key"); - return false; - }; - - let Ok(params) = Params::read::<_>(&mut BufReader::new(vk_params_bytes)) else { - error!("Failed to deserialize verification parameters"); - return false; - }; - - let Ok(res) = read_fr(public_input) else { - error!("Failed to deserialize public inputs"); - return false; - }; - - let strategy = SingleStrategy::new(¶ms); - let instances = res; - let mut transcript = Blake2bRead::<&[u8], G1Affine, Challenge255<_>>::init(proof); - verify_proof::< - IPACommitmentScheme, - VerifierIPA, - Challenge255, - Blake2bRead<&[u8], G1Affine, Challenge255>, - SingleStrategy, - >(¶ms, &vk, strategy, &[vec![instances]], &mut transcript) - .is_ok() -} diff --git a/batcher/aligned-batcher/src/halo2/kzg/mod.rs b/batcher/aligned-batcher/src/halo2/kzg/mod.rs deleted file mode 100644 index 745cb46e7..000000000 --- a/batcher/aligned-batcher/src/halo2/kzg/mod.rs +++ /dev/null @@ -1,63 +0,0 @@ -use halo2_proofs::{ - plonk::{read_fr, read_params, verify_proof, VerifyingKey}, - poly::{ - commitment::Params, - kzg::{ - commitment::KZGCommitmentScheme, multiopen::VerifierSHPLONK, strategy::SingleStrategy, - }, - }, - transcript::{Blake2bRead, Challenge255, TranscriptReadBuffer}, - SerdeFormat, -}; -use halo2curves::bn256::{Bn256, G1Affine}; -use log::error; -use std::io::BufReader; - -pub fn verify_halo2_kzg(proof: &[u8], public_input: &[u8], verification_key: &[u8]) -> bool { - // For Halo2 the verification key contains the serialized cs, vk, and params with there respective sizes serialized as u32 values (4 bytes) => 3 * 4 bytes = 12 followed by the concatenated variable length buffers: - // We therefore require that the verification key is greater than 12 bytes and treat the case that buffer lengths and buffers themselves are 0 size as false. - // [ cs_len | vk_len | vk_params_len | cs_bytes | vk_bytes | vk_params_bytes ]. - if proof.is_empty() || verification_key.len() <= 12 || public_input.is_empty() { - error!("Input buffer length zero size"); - return false; - } - - let Ok((cs_bytes, vk_bytes, vk_params_bytes)) = read_params(verification_key) else { - error!("Failed to deserialize verifiation parameter buffers from parameters buffer"); - return false; - }; - - let Ok(cs) = bincode::deserialize(cs_bytes) else { - error!("Failed to deserialize constraint system"); - return false; - }; - - let Ok(vk) = - VerifyingKey::::read(&mut BufReader::new(vk_bytes), SerdeFormat::RawBytes, cs) - else { - error!("Failed to deserialize verification key"); - return false; - }; - - let Ok(params) = Params::read::<_>(&mut BufReader::new(vk_params_bytes)) else { - error!("Failed to deserialize verification parameters"); - return false; - }; - - let Ok(res) = read_fr(public_input) else { - error!("Failed to deserialize public inputs"); - return false; - }; - - let strategy = SingleStrategy::new(¶ms); - let instances = res; - let mut transcript = Blake2bRead::<&[u8], G1Affine, Challenge255<_>>::init(proof); - verify_proof::< - KZGCommitmentScheme, - VerifierSHPLONK, - Challenge255, - Blake2bRead<&[u8], G1Affine, Challenge255>, - SingleStrategy, - >(¶ms, &vk, strategy, &[vec![instances]], &mut transcript) - .is_ok() -} diff --git a/batcher/aligned-batcher/src/halo2/mod.rs b/batcher/aligned-batcher/src/halo2/mod.rs deleted file mode 100644 index b60366b81..000000000 --- a/batcher/aligned-batcher/src/halo2/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod ipa; -pub mod kzg; diff --git a/batcher/aligned-batcher/src/lib.rs b/batcher/aligned-batcher/src/lib.rs index b5a24e372..b8b7a19f0 100644 --- a/batcher/aligned-batcher/src/lib.rs +++ b/batcher/aligned-batcher/src/lib.rs @@ -1,192 +1,61 @@ -extern crate core; - use aligned_sdk::communication::serialization::{cbor_deserialize, cbor_serialize}; -use aligned_sdk::eth::batcher_payment_service::SignatureData; use config::NonPayingConfig; +use connection::{send_message, WsMessageSink}; use dotenvy::dotenv; use ethers::contract::ContractError; use ethers::signers::Signer; -use serde::Serialize; +use types::batch_state::BatchState; +use types::user_state::UserState; -use std::collections::hash_map::Entry; use std::collections::HashMap; use std::env; -use std::iter::repeat; use std::net::SocketAddr; use std::sync::Arc; -use aligned_sdk::core::{ - constants::{ - ADDITIONAL_SUBMISSION_GAS_COST_PER_PROOF, AGGREGATOR_GAS_COST, CONSTANT_GAS_COST, - DEFAULT_AGGREGATOR_FEE_DIVIDER, DEFAULT_AGGREGATOR_FEE_MULTIPLIER, - DEFAULT_MAX_FEE_PER_PROOF, MIN_FEE_PER_PROOF, RESPOND_TO_TASK_FEE_LIMIT_DIVIDER, - RESPOND_TO_TASK_FEE_LIMIT_MULTIPLIER, - }, - types::{ - BatchInclusionData, ClientMessage, NoncedVerificationData, ResponseMessage, - ValidityResponseMessage, VerificationCommitmentBatch, VerificationData, - VerificationDataCommitment, - }, +use aligned_sdk::core::types::{ + ClientMessage, NoncedVerificationData, ResponseMessage, ValidityResponseMessage, + VerificationCommitmentBatch, VerificationData, VerificationDataCommitment, }; use aws_sdk_s3::client::Client as S3Client; use eth::{try_create_new_task, BatcherPaymentService, CreateNewTaskFeeParams, SignerMiddlewareT}; use ethers::prelude::{Middleware, Provider}; use ethers::providers::Ws; use ethers::types::{Address, Signature, TransactionReceipt, U256}; -use futures_util::stream::SplitSink; use futures_util::{future, SinkExt, StreamExt, TryStreamExt}; use lambdaworks_crypto::merkle_tree::merkle::MerkleTree; use lambdaworks_crypto::merkle_tree::traits::IsMerkleTreeBackend; use log::{debug, error, info, warn}; use tokio::net::{TcpListener, TcpStream}; -use tokio::sync::{Mutex, RwLock}; +use tokio::sync::{Mutex, MutexGuard, RwLock}; use tokio_tungstenite::tungstenite::{Error, Message}; -use tokio_tungstenite::WebSocketStream; -use types::batch_queue::{self, BatchQueue, BatchQueueEntry, BatchQueueEntryPriority}; +use types::batch_queue::{self, BatchQueueEntry, BatchQueueEntryPriority}; use types::errors::{BatcherError, BatcherSendError}; use crate::config::{ConfigFromYaml, ContractDeploymentOutput}; mod config; +mod connection; mod eth; pub mod gnark; -pub mod halo2; pub mod risc_zero; pub mod s3; pub mod sp1; pub mod types; mod zk_utils; -struct BatchState { - batch_queue: BatchQueue, - user_nonces: HashMap, - /// The minimum fee of a pending proof for a user. - /// This should always be the fee of the biggest pending nonce by the user. - /// This is used to check if a user is submitting a proof with a higher nonce and higher fee, - /// which is invalid and should be rejected. - user_min_fee: HashMap, - user_proof_count_in_batch: HashMap, -} +const AGGREGATOR_GAS_COST: u128 = 400_000; +const BATCHER_SUBMISSION_BASE_GAS_COST: u128 = 125_000; +pub(crate) const ADDITIONAL_SUBMISSION_GAS_COST_PER_PROOF: u128 = 13_000; +pub(crate) const CONSTANT_GAS_COST: u128 = + ((AGGREGATOR_GAS_COST * DEFAULT_AGGREGATOR_FEE_MULTIPLIER) / DEFAULT_AGGREGATOR_FEE_DIVIDER) + + BATCHER_SUBMISSION_BASE_GAS_COST; -impl BatchState { - fn new() -> Self { - Self { - batch_queue: BatchQueue::new(), - user_nonces: HashMap::new(), - user_min_fee: HashMap::new(), - user_proof_count_in_batch: HashMap::new(), - } - } - - fn get_user_proof_count(&self, addr: &Address) -> u64 { - *self.user_proof_count_in_batch.get(addr).unwrap_or(&0) - } - - /* - Increments the user proof count in the batch, if the user is already in the hashmap. - If the user is not in the hashmap, it adds the user to the hashmap with a count of 1 to represent the first proof. - */ - fn increment_user_proof_count(&mut self, addr: &Address) { - self.user_proof_count_in_batch - .entry(*addr) - .and_modify(|count| *count += 1) - .or_insert(1); - } - - fn get_entry(&self, sender: Address, nonce: U256) -> Option<&BatchQueueEntry> { - self.batch_queue - .iter() - .map(|(entry, _)| entry) - .find(|entry| entry.sender == sender && entry.nonced_verification_data.nonce == nonce) - } - - /// Checks if the entry is valid - /// An entry is valid if there is no entry with the same sender, - /// lower nonce and a lower fee - /// If the entry is valid, it replaces the entry in the queue - /// to increment the max fee, then it updates the user min fee if necessary - /// If the entry is invalid, it returns a validity response message. - /// If the entry is valid, it returns None. - fn validate_and_increment_max_fee( - &mut self, - replacement_entry: BatchQueueEntry, - ) -> Option { - let replacement_max_fee = replacement_entry.nonced_verification_data.max_fee; - let nonce = replacement_entry.nonced_verification_data.nonce; - let sender = replacement_entry.sender; - - debug!( - "Checking validity of entry with sender: {:?}, nonce: {:?}, max_fee: {:?}", - sender, nonce, replacement_max_fee - ); - - // it is a valid entry only if there is no entry with the same sender, lower nonce and a lower fee - let is_valid = !self.batch_queue.iter().any(|(entry, _)| { - entry.sender == sender - && entry.nonced_verification_data.nonce < nonce - && entry.nonced_verification_data.max_fee < replacement_max_fee - }); - - if !is_valid { - return Some(ValidityResponseMessage::InvalidReplacementMessage); - } - - info!( - "Entry is valid, incrementing fee for sender: {:?}, nonce: {:?}, max_fee: {:?}", - sender, nonce, replacement_max_fee - ); - - // remove the old entry and insert the new one - // note that the entries are considered equal for the priority queue - // if they have the same nonce and sender, so we can remove the old entry - // by calling remove with the new entry - self.batch_queue.remove(&replacement_entry); - self.batch_queue.push( - replacement_entry.clone(), - BatchQueueEntryPriority::new(replacement_max_fee, nonce), - ); - - let user_min_fee = self - .batch_queue - .iter() - .filter(|(e, _)| e.sender == sender) - .map(|(e, _)| e.nonced_verification_data.max_fee) - .min() - .unwrap_or(U256::max_value()); - - self.user_min_fee.insert(sender, user_min_fee); - - None - } - - /// Updates: - /// * The user proof count in batch - /// * The user min fee pending in batch (which is the one with the highest nonce) - /// based on whats currenlty in the batch queue. - /// This is necessary because the whole batch may not be included in the finalized batch, - /// This caches are needed to validate user messages. - fn update_user_proofs_in_batch_and_min_fee(&mut self) { - let mut updated_user_min_fee = HashMap::new(); - let mut updated_user_proof_count_in_batch = HashMap::new(); - - for (entry, _) in self.batch_queue.iter() { - *updated_user_proof_count_in_batch - .entry(entry.sender) - .or_insert(0) += 1; - - let min_fee = updated_user_min_fee - .entry(entry.sender) - .or_insert(entry.nonced_verification_data.max_fee); - - if entry.nonced_verification_data.max_fee < *min_fee { - *min_fee = entry.nonced_verification_data.max_fee; - } - } - - self.user_proof_count_in_batch = updated_user_proof_count_in_batch; - self.user_min_fee = updated_user_min_fee; - } -} +const DEFAULT_MAX_FEE_PER_PROOF: u128 = ADDITIONAL_SUBMISSION_GAS_COST_PER_PROOF * 100_000_000_000; // gas_price = 100 Gwei = 0.0000001 ether (high gas price) +const MIN_FEE_PER_PROOF: u128 = ADDITIONAL_SUBMISSION_GAS_COST_PER_PROOF * 100_000_000; // gas_price = 0.1 Gwei = 0.0000000001 ether (low gas price) +const RESPOND_TO_TASK_FEE_LIMIT_MULTIPLIER: u128 = 5; // to set the respondToTaskFeeLimit variable higher than fee_for_aggregator +const RESPOND_TO_TASK_FEE_LIMIT_DIVIDER: u128 = 2; +const DEFAULT_AGGREGATOR_FEE_MULTIPLIER: u128 = 3; // to set the feeForAggregator variable higher than what was calculated +const DEFAULT_AGGREGATOR_FEE_DIVIDER: u128 = 2; pub struct Batcher { s3_client: S3Client, @@ -199,7 +68,6 @@ pub struct Batcher { payment_service_fallback: BatcherPaymentService, batch_state: Mutex, max_block_interval: u64, - min_batch_len: usize, max_proof_size: usize, max_batch_size: usize, last_uploaded_batch_block: Mutex, @@ -290,10 +158,27 @@ impl Batcher { .await .expect("Failed to get fallback Batcher Payment Service contract"); + let mut user_states = HashMap::new(); + let mut batch_state = BatchState::new(); let non_paying_config = if let Some(non_paying_config) = config.batcher.non_paying { warn!("Non-paying address configuration detected. Will replace non-paying address {} with configured address.", non_paying_config.address); - Some(NonPayingConfig::from_yaml_config(non_paying_config).await) + + let non_paying_config = NonPayingConfig::from_yaml_config(non_paying_config).await; + let nonpaying_nonce = payment_service + .user_nonces(non_paying_config.replacement.address()) + .call() + .await + .expect("Could not get non-paying nonce from Ethereum"); + + let non_paying_user_state = UserState::new(nonpaying_nonce); + user_states.insert( + non_paying_config.replacement.address(), + non_paying_user_state, + ); + + batch_state = BatchState::new_with_user_states(user_states); + Some(non_paying_config) } else { None }; @@ -307,15 +192,14 @@ impl Batcher { chain_id, payment_service, payment_service_fallback, - batch_state: Mutex::new(BatchState::new()), max_block_interval: config.batcher.block_interval, - min_batch_len: config.batcher.batch_size_interval, max_proof_size: config.batcher.max_proof_size, max_batch_size: config.batcher.max_batch_size, last_uploaded_batch_block: Mutex::new(last_uploaded_batch_block), pre_verification_is_enabled: config.batcher.pre_verification_is_enabled, non_paying_config, posting_batch: Mutex::new(false), + batch_state: Mutex::new(batch_state), } } @@ -417,7 +301,7 @@ impl Batcher { async fn handle_message( self: Arc, message: Message, - ws_conn_sink: Arc, Message>>>, + ws_conn_sink: WsMessageSink, ) -> Result<(), Error> { // Deserialize verification data from message let client_msg: ClientMessage = match cbor_deserialize(message.into_data().as_slice()) { @@ -427,18 +311,17 @@ impl Batcher { return Ok(()); } }; + let msg_nonce = client_msg.verification_data.nonce; + debug!("Received message with nonce: {msg_nonce:?}",); - info!( - "Received message with nonce: {}", - client_msg.verification_data.nonce - ); - - if client_msg.verification_data.chain_id != self.chain_id { - warn!( - "Received message with incorrect chain id: {}", //This check does not save against "Holesky" and "HoleskyStage", since both are chain_id 17000 - client_msg.verification_data.chain_id - ); + // * ---------------------------------------------------* + // * Perform validations over the message * + // * ---------------------------------------------------* + // This check does not save against "Holesky" and "HoleskyStage", since both are chain_id 17000 + let msg_chain_id = client_msg.verification_data.chain_id; + if msg_chain_id != self.chain_id { + warn!("Received message with incorrect chain id: {msg_chain_id}"); send_message( ws_conn_sink.clone(), ValidityResponseMessage::InvalidChainId, @@ -448,16 +331,15 @@ impl Batcher { return Ok(()); } - if client_msg.verification_data.payment_service_addr != self.payment_service.address() { - warn!( - "Received message with incorrect payment service address: {}", //This checks saves against "Holesky" and "HoleskyStage", since each one has a different payment service address - client_msg.verification_data.payment_service_addr - ); + // This checks saves against "Holesky" and "HoleskyStage", since each one has a different payment service address + let msg_payment_service_addr = client_msg.verification_data.payment_service_addr; + if msg_payment_service_addr != self.payment_service.address() { + warn!("Received message with incorrect payment service address: {msg_payment_service_addr}"); send_message( ws_conn_sink.clone(), ValidityResponseMessage::InvalidPaymentServiceAddress( - client_msg.verification_data.payment_service_addr, + msg_payment_service_addr, self.payment_service.address(), ), ) @@ -467,208 +349,199 @@ impl Batcher { } info!("Verifying message signature..."); - if let Ok(addr) = client_msg.verify_signature() { - info!("Message signature verified"); - if self.is_nonpaying(&addr) { - self.handle_nonpaying_msg(ws_conn_sink.clone(), client_msg) - .await - } else { - info!("Handling paying message"); - if !self - .check_user_balance_and_increment_proof_count(&addr) - .await - { - send_message( - ws_conn_sink.clone(), - ValidityResponseMessage::InsufficientBalance(addr), - ) - .await; + let Ok(addr) = client_msg.verify_signature() else { + error!("Signature verification error"); + send_message( + ws_conn_sink.clone(), + ValidityResponseMessage::InvalidSignature, + ) + .await; + return Ok(()); + }; + info!("Message signature verified"); - return Ok(()); - } + let proof_size = client_msg.verification_data.verification_data.proof.len(); + if proof_size > self.max_proof_size { + error!("Proof size exceeds the maximum allowed size."); + send_message(ws_conn_sink.clone(), ValidityResponseMessage::ProofTooLarge).await; + return Ok(()); + } - let nonced_verification_data = client_msg.verification_data; - if nonced_verification_data.verification_data.proof.len() > self.max_proof_size { - error!("Proof size exceeds the maximum allowed size."); - send_message(ws_conn_sink.clone(), ValidityResponseMessage::ProofTooLarge) - .await; - return Ok(()); - } + let nonced_verification_data = client_msg.verification_data.clone(); - // When pre-verification is enabled, batcher will verify proofs for faster feedback with clients - if self.pre_verification_is_enabled - && !zk_utils::verify(&nonced_verification_data.verification_data).await - { - error!("Invalid proof detected. Verification failed."); - send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidProof).await; - return Ok(()); // Send error message to the client and return - } + // When pre-verification is enabled, batcher will verify proofs for faster feedback with clients + if self.pre_verification_is_enabled + && !zk_utils::verify(&nonced_verification_data.verification_data).await + { + error!("Invalid proof detected. Verification failed."); + send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidProof).await; + return Ok(()); + } + + if self.is_nonpaying(&addr) { + return self + .handle_nonpaying_msg(ws_conn_sink.clone(), &client_msg) + .await; + } - // Nonce and max fee verification - let nonce = nonced_verification_data.nonce; - let max_fee = nonced_verification_data.max_fee; + info!("Handling paying message"); - if max_fee < U256::from(MIN_FEE_PER_PROOF) { - error!("The max fee signed in the message is less than the accepted minimum fee to be included in the batch."); - send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidMaxFee) - .await; + // We don't need a batch state lock here, since if the user locks its funds + // after the check, some blocks should pass until he can withdraw. + // It is safe to do just do this here. + if self.user_balance_is_unlocked(&addr).await { + send_message( + ws_conn_sink.clone(), + ValidityResponseMessage::InsufficientBalance(addr), + ) + .await; + return Ok(()); + } + + // Nonce and max fee verification + let max_fee = nonced_verification_data.max_fee; + if max_fee < U256::from(MIN_FEE_PER_PROOF) { + error!("The max fee signed in the message is less than the accepted minimum fee to be included in the batch."); + send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidMaxFee).await; + return Ok(()); + } + + // Check that we had a user state entry for this user and insert it if not. + + // We aquire the lock first only to query if the user is already present and the lock is dropped. + // If it was not present, then the user nonce is queried to the Aligned contract. + // Lastly, we get a lock of the batch state again and insert the user state if it was still missing. + + let is_user_in_state: bool; + { + let batch_state_lock = self.batch_state.lock().await; + is_user_in_state = batch_state_lock.user_states.contains_key(&addr); + } + + if !is_user_in_state { + let ethereum_user_nonce = match self.get_user_nonce_from_ethereum(addr).await { + Ok(ethereum_user_nonce) => ethereum_user_nonce, + Err(e) => { + error!( + "Failed to get user nonce from Ethereum for address {addr:?}. Error: {e:?}" + ); + send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidNonce).await; return Ok(()); } + }; + let user_state = UserState::new(ethereum_user_nonce); + let mut batch_state_lock = self.batch_state.lock().await; + batch_state_lock + .user_states + .entry(addr) + .or_insert(user_state); + } - let mut batch_state = self.batch_state.lock().await; - - let expected_user_nonce = match batch_state.user_nonces.get(&addr) { - Some(nonce) => *nonce, - None => { - let user_nonce = match self.get_user_nonce(addr).await { - Ok(nonce) => nonce, - Err(e) => { - error!("Failed to get user nonce for address {:?}: {:?}", addr, e); - send_message( - ws_conn_sink.clone(), - ValidityResponseMessage::InvalidNonce, - ) - .await; - - return Ok(()); - } - }; - - batch_state.user_nonces.insert(addr, user_nonce); - user_nonce - } - }; + // * ---------------------------------------------------* + // * Perform validations over user state * + // * ---------------------------------------------------* - let min_fee = match batch_state.user_min_fee.get(&addr) { - Some(fee) => *fee, - None => U256::max_value(), - }; + let Some(user_balance) = self.get_user_balance(&addr).await else { + error!("Could not get balance for address {addr:?}"); + send_message(ws_conn_sink.clone(), ValidityResponseMessage::EthRpcError).await; + return Ok(()); + }; - match expected_user_nonce.cmp(&nonce) { - std::cmp::Ordering::Less => { - // invalid, expected user nonce < nonce - warn!( - "Invalid nonce for address {addr}, had nonce {:?} < {:?}", - expected_user_nonce, nonce - ); - send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidNonce) - .await; - return Ok(()); - } - std::cmp::Ordering::Equal => { - // if we are here nonce == expected_user_nonce - if !self - .handle_expected_nonce_message( - batch_state, - min_fee, - nonced_verification_data, - ws_conn_sink.clone(), - client_msg.signature, - addr, - ) - .await - { - // message should not be added to batch - return Ok(()); - }; - } - std::cmp::Ordering::Greater => { - // might be replacement message - // if the message is already in the batch - // we can check if we need to increment the fee - // get the entry with the same sender and nonce - if !self - .handle_replacement_message( - batch_state, - nonced_verification_data, - ws_conn_sink.clone(), - client_msg.signature, - addr, - expected_user_nonce, - ) - .await - { - // message should not be added to batch - return Ok(()); - } - } - } + // For now on until the message is fully processed, the batch state is locked + // This is needed because we need to query the user state to make validations and + // finally add the proof to the batch queue. - info!("Verification data message handled"); + let batch_state_lock = self.batch_state.lock().await; + let Some(proofs_in_batch) = batch_state_lock.get_user_proof_count(&addr).await else { + error!("Failed to get user proof count: User not found in user states, but it should have been already inserted"); + std::mem::drop(batch_state_lock); + send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidNonce).await; + return Ok(()); + }; - send_message(ws_conn_sink, ValidityResponseMessage::Valid).await; - Ok(()) - } - } else { - error!("Signature verification error"); + if !self.check_min_balance(proofs_in_batch + 1, user_balance) { + std::mem::drop(batch_state_lock); send_message( ws_conn_sink.clone(), - ValidityResponseMessage::InvalidSignature, + ValidityResponseMessage::InsufficientBalance(addr), ) .await; - Ok(()) // Send error message to the client and return + return Ok(()); } - } - // Checks user has sufficient balance - // If user has sufficient balance, increments the user's proof count in the batch - async fn check_user_balance_and_increment_proof_count(&self, addr: &Address) -> bool { - if self.user_balance_is_unlocked(addr).await { - return false; - } - let mut batch_state = self.batch_state.lock().await; + let cached_user_nonce = batch_state_lock.get_user_nonce(&addr).await; + let Some(expected_nonce) = cached_user_nonce else { + error!("Failed to get cached user nonce: User not found in user states, but it should have been already inserted"); + std::mem::drop(batch_state_lock); + send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidNonce).await; + return Ok(()); + }; - let user_proofs_in_batch = batch_state.get_user_proof_count(addr) + 1; + if expected_nonce < msg_nonce { + std::mem::drop(batch_state_lock); + warn!("Invalid nonce for address {addr}, had nonce {expected_nonce:?} < {msg_nonce:?}"); + send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidNonce).await; + return Ok(()); + } - let user_balance = self.get_user_balance(addr).await; + // In this case, the message might be a replacement one. If it is valid, + // we replace the old entry with the new from the replacement message. + if expected_nonce > msg_nonce { + info!("Possible replacement message received: Expected nonce {expected_nonce:?} - message nonce: {msg_nonce:?}"); + self.handle_replacement_message( + batch_state_lock, + nonced_verification_data, + ws_conn_sink.clone(), + client_msg.signature, + addr, + ) + .await; - let min_balance = U256::from(user_proofs_in_batch) * U256::from(MIN_FEE_PER_PROOF); - if user_balance < min_balance { - return false; + return Ok(()); } - batch_state.increment_user_proof_count(addr); - true - } + let msg_max_fee = nonced_verification_data.max_fee; + let Some(user_min_fee) = batch_state_lock.get_user_min_fee(&addr).await else { + std::mem::drop(batch_state_lock); + send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidNonce).await; + return Ok(()); + }; - /// Handles a message with an expected nonce. - /// If the max_fee is valid, it is added to the batch. - /// If the max_fee is invalid, a message is sent to the client. - /// Returns true if the message was added to the batch, false otherwise. - async fn handle_expected_nonce_message( - &self, - mut batch_state: tokio::sync::MutexGuard<'_, BatchState>, - min_fee: U256, - nonced_verification_data: NoncedVerificationData, - ws_conn_sink: Arc, Message>>>, - signature: Signature, - addr: Address, - ) -> bool { - let max_fee = nonced_verification_data.max_fee; - if max_fee > min_fee { - warn!( - "Invalid max fee for address {addr}, had fee {:?} < {:?}", - min_fee, max_fee - ); + if msg_max_fee > user_min_fee { + std::mem::drop(batch_state_lock); + warn!("Invalid max fee for address {addr}, had fee {user_min_fee:?} < {msg_max_fee:?}"); send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidMaxFee).await; - return false; + return Ok(()); } - let nonce = nonced_verification_data.nonce; + // * ---------------------------------------------------------------------* + // * Add message data into the queue and update user state * + // * ---------------------------------------------------------------------* - batch_state.user_nonces.insert(addr, nonce + U256::one()); - batch_state.user_min_fee.insert(addr, max_fee); + if let Err(e) = self + .add_to_batch( + batch_state_lock, + nonced_verification_data, + ws_conn_sink.clone(), + client_msg.signature, + addr, + ) + .await + { + error!("Error while adding entry to batch: {e:?}"); + send_message(ws_conn_sink, ValidityResponseMessage::AddToBatchError).await; + return Ok(()); + }; - self.add_to_batch( - batch_state, - nonced_verification_data, - ws_conn_sink.clone(), - signature, - addr, - ) - .await; + info!("Verification data message handled"); + send_message(ws_conn_sink, ValidityResponseMessage::Valid).await; + Ok(()) + } - true + // Checks user has sufficient balance for paying all its the proofs in the current batch. + fn check_min_balance(&self, user_proofs_in_batch: usize, user_balance: U256) -> bool { + let min_balance = U256::from(user_proofs_in_batch) * U256::from(MIN_FEE_PER_PROOF); + user_balance >= min_balance } /// Handles a replacement message @@ -680,61 +553,50 @@ impl Batcher { /// Returns true if the message was replaced in the batch, false otherwise async fn handle_replacement_message( &self, - mut batch_state: tokio::sync::MutexGuard<'_, BatchState>, + mut batch_state_lock: MutexGuard<'_, BatchState>, nonced_verification_data: NoncedVerificationData, - ws_conn_sink: Arc, Message>>>, + ws_conn_sink: WsMessageSink, signature: Signature, addr: Address, - expected_user_nonce: U256, - ) -> bool { + ) { let replacement_max_fee = nonced_verification_data.max_fee; let nonce = nonced_verification_data.nonce; + let Some(entry) = batch_state_lock.get_entry(addr, nonce) else { + std::mem::drop(batch_state_lock); + warn!("Invalid nonce for address {addr}. Queue entry with nonce {nonce} not found"); + send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidNonce).await; + return; + }; - let mut replacement_entry = match batch_state.get_entry(addr, nonce) { - Some(entry) => { - if entry.nonced_verification_data.max_fee < replacement_max_fee { - entry.clone() - } else { - warn!( - "Invalid replacement message for address {addr}, had fee {:?} < {:?}", - entry.nonced_verification_data.max_fee, replacement_max_fee - ); - send_message( - ws_conn_sink.clone(), - ValidityResponseMessage::InvalidReplacementMessage, - ) - .await; + let original_max_fee = entry.nonced_verification_data.max_fee; + if original_max_fee > replacement_max_fee { + std::mem::drop(batch_state_lock); + warn!("Invalid replacement message for address {addr}, had fee {original_max_fee:?} < {replacement_max_fee:?}"); + send_message( + ws_conn_sink.clone(), + ValidityResponseMessage::InvalidReplacementMessage, + ) + .await; - return false; - } - } - None => { - warn!( - "Invalid nonce for address {addr} Expected: {:?}, got: {:?}", - expected_user_nonce, nonce - ); - send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidNonce).await; - return false; - } - }; + return; + } - info!( - "Replacing message for address {} with nonce {} and max fee {}", - addr, nonce, replacement_max_fee - ); + info!("Replacing message for address {addr} with nonce {nonce} and max fee {replacement_max_fee}"); + // The replacement entry is built from the old entry and validated for then to be replaced + let mut replacement_entry = entry.clone(); replacement_entry.signature = signature; replacement_entry.verification_data_commitment = nonced_verification_data.verification_data.clone().into(); replacement_entry.nonced_verification_data = nonced_verification_data; - // close old sink and replace with new one + // Close old sink in old entry and replace it with the new one { if let Some(messaging_sink) = replacement_entry.messaging_sink { let mut old_sink = messaging_sink.write().await; if let Err(e) = old_sink.close().await { // we dont want to exit here, just log the error - warn!("Error closing sink: {:?}", e); + warn!("Error closing sink: {e:?}"); } } else { warn!( @@ -744,16 +606,43 @@ impl Batcher { } replacement_entry.messaging_sink = Some(ws_conn_sink.clone()); - if let Some(msg) = batch_state.validate_and_increment_max_fee(replacement_entry) { - warn!("Invalid max fee"); - send_message(ws_conn_sink.clone(), msg).await; - return false; + if !batch_state_lock.replacement_entry_is_valid(&replacement_entry) { + std::mem::drop(batch_state_lock); + warn!("Invalid replacement message"); + send_message( + ws_conn_sink.clone(), + ValidityResponseMessage::InvalidReplacementMessage, + ) + .await; + return; } - true + info!( + "Replacement entry is valid, incrementing fee for sender: {:?}, nonce: {:?}, max_fee: {:?}", + replacement_entry.sender, replacement_entry.nonced_verification_data.nonce, replacement_max_fee + ); + + // remove the old entry and insert the new one + // note that the entries are considered equal for the priority queue + // if they have the same nonce and sender, so we can remove the old entry + // by calling remove with the new entry + batch_state_lock.batch_queue.remove(&replacement_entry); + batch_state_lock.batch_queue.push( + replacement_entry.clone(), + BatchQueueEntryPriority::new(replacement_max_fee, nonce), + ); + + let updated_min_fee_in_batch = batch_state_lock.get_user_min_fee_in_batch(&addr); + if batch_state_lock + .update_user_min_fee(&addr, updated_min_fee_in_batch) + .is_none() + { + std::mem::drop(batch_state_lock); + warn!("User state for address {addr:?} was not present in batcher user states, but it should be"); + }; } - async fn get_user_nonce( + async fn get_user_nonce_from_ethereum( &self, addr: Address, ) -> Result> { @@ -766,43 +655,86 @@ impl Batcher { /// Adds verification data to the current batch queue. async fn add_to_batch( &self, - mut batch_state: tokio::sync::MutexGuard<'_, BatchState>, + mut batch_state_lock: MutexGuard<'_, BatchState>, verification_data: NoncedVerificationData, - ws_conn_sink: Arc, Message>>>, + ws_conn_sink: WsMessageSink, proof_submitter_sig: Signature, - proof_submiter_addr: Address, - ) { + proof_submitter_addr: Address, + ) -> Result<(), BatcherError> { info!("Calculating verification data commitments..."); let verification_data_comm = verification_data.clone().into(); info!("Adding verification data to batch..."); let max_fee = verification_data.max_fee; let nonce = verification_data.nonce; - - batch_state.batch_queue.push( + batch_state_lock.batch_queue.push( BatchQueueEntry::new( verification_data, verification_data_comm, ws_conn_sink, proof_submitter_sig, - proof_submiter_addr, + proof_submitter_addr, ), BatchQueueEntryPriority::new(max_fee, nonce), ); + info!( "Current batch queue length: {}", - batch_state.batch_queue.len() + batch_state_lock.batch_queue.len() ); + + let mut proof_submitter_addr = proof_submitter_addr; + + // If the proof submitter is the nonpaying one, we should update the state + // of the replacement address. + proof_submitter_addr = if self.is_nonpaying(&proof_submitter_addr) { + self.get_nonpaying_replacement_addr() + .unwrap_or(proof_submitter_addr) + } else { + proof_submitter_addr + }; + + let Some(user_proof_count) = batch_state_lock + .get_user_proof_count(&proof_submitter_addr) + .await + else { + error!("User state of address {proof_submitter_addr} was not found when trying to update user state. This user state should have been present"); + std::mem::drop(batch_state_lock); + return Err(BatcherError::AddressNotFoundInUserStates( + proof_submitter_addr, + )); + }; + + // User state is updated + if batch_state_lock + .update_user_state( + &proof_submitter_addr, + nonce + U256::one(), + max_fee, + user_proof_count + 1, + ) + .is_none() + { + error!("User state of address {proof_submitter_addr} was not found when trying to update user state. This user state should have been present"); + std::mem::drop(batch_state_lock); + return Err(BatcherError::AddressNotFoundInUserStates( + proof_submitter_addr, + )); + }; + + Ok(()) } /// Given a new block number listened from the blockchain, checks if the current batch is ready to be posted. /// There are essentially two conditions to be checked: - /// * Has the current batch reached the minimum size to be posted? - /// * Has the received block number surpassed the maximum interval with respect to the last posted batch block? + /// * Has the current batch reached the minimum size to be posted? + /// * Has the received block number surpassed the maximum interval with respect to the last posted batch block? + /// /// Then the batch will be made as big as possible given this two conditions: - /// * The serialized batch size needs to be smaller than the maximum batch size - /// * The batch submission fee is less than the lowest `max fee` included the batch, - /// * And the batch submission fee is more than the highest `max fee` not included the batch. + /// * The serialized batch size needs to be smaller than the maximum batch size + /// * The batch submission fee is less than the lowest `max fee` included the batch, + /// * And the batch submission fee is more than the highest `max fee` not included the batch. + /// /// An extra sanity check is made to check if the batch size is 0, since it does not make sense to post /// an empty batch, even if the block interval has been reached. /// Once the batch meets the conditions for submission, the finalized batch is then passed to the @@ -812,24 +744,22 @@ impl Batcher { block_number: u64, gas_price: U256, ) -> Option> { - let mut batch_state = self.batch_state.lock().await; - let current_batch_len = batch_state.batch_queue.len(); - + let mut batch_state_lock = self.batch_state.lock().await; + let current_batch_len = batch_state_lock.batch_queue.len(); let last_uploaded_batch_block_lock = self.last_uploaded_batch_block.lock().await; - // FIXME(marian): This condition should be changed to current_batch_size == 0 - // once the bug in Lambdaworks merkle tree is fixed. if current_batch_len < 2 { - info!("Current batch is empty or length 1. Waiting for more proofs..."); + info!( + "Current batch has {} proof. Waiting for more proofs...", + current_batch_len + ); return None; } - if current_batch_len < self.min_batch_len - && block_number < *last_uploaded_batch_block_lock + self.max_block_interval - { + if block_number < *last_uploaded_batch_block_lock + self.max_block_interval { info!( - "Current batch not ready to be posted. Current block: {} - Last uploaded block: {}. Current batch length: {} - Minimum batch length: {}", - block_number, *last_uploaded_batch_block_lock, current_batch_len, self.min_batch_len + "Current batch not ready to be posted. Minimium amount of {} blocks have not passed. Block passed: {}", self.max_block_interval, + block_number - *last_uploaded_batch_block_lock, ); return None; } @@ -845,29 +775,44 @@ impl Batcher { // Set the batch posting flag to true *batch_posting = true; - - let batch_queue_copy = batch_state.batch_queue.clone(); - match batch_queue::try_build_batch(batch_queue_copy, gas_price, self.max_batch_size) { - Ok((resulting_batch_queue, finalized_batch)) => { - // Set the batch queue to batch queue copy - batch_state.batch_queue = resulting_batch_queue; - batch_state.update_user_proofs_in_batch_and_min_fee(); - Some(finalized_batch) - } - Err(BatcherError::BatchCostTooHigh) => { - // We cant post a batch since users are not willing to pay the needed fee, wait for more proofs - info!("No working batch found. Waiting for more proofs..."); - *batch_posting = false; - None - } - // FIXME: We should refactor this code and instead of returning None, return an error. - // See issue https://github.com/yetanotherco/aligned_layer/issues/1046. - Err(e) => { - error!("Unexpected error: {:?}", e); - *batch_posting = false; - None - } + let batch_queue_copy = batch_state_lock.batch_queue.clone(); + let (resulting_batch_queue, finalized_batch) = + batch_queue::try_build_batch(batch_queue_copy, gas_price, self.max_batch_size) + .inspect_err(|e| { + *batch_posting = false; + match e { + // We can't post a batch since users are not willing to pay the needed fee, wait for more proofs + BatcherError::BatchCostTooHigh => { + info!("No working batch found. Waiting for more proofs") + } + // FIXME: We should refactor this code and instead of returning None, return an error. + // See issue https://github.com/yetanotherco/aligned_layer/issues/1046. + e => error!("Unexpected error: {:?}", e), + } + }) + .ok()?; + + batch_state_lock.batch_queue = resulting_batch_queue; + let updated_user_proof_count_and_min_fee = + batch_state_lock.get_user_proofs_in_batch_and_min_fee(); + + let user_addresses: Vec
= batch_state_lock.user_states.keys().cloned().collect(); + for addr in user_addresses.iter() { + let (proof_count, min_fee) = updated_user_proof_count_and_min_fee + .get(addr) + .unwrap_or(&(0, U256::MAX)); + + // FIXME: The case where a the update functions return `None` can only happen when the user was not found + // in the `user_states` map should not really happen here, but doing this check so that we don't unwrap. + // Once https://github.com/yetanotherco/aligned_layer/issues/1046 is done we could return a more + // informative error. + + // Now we update the user states related to the batch (proof count in batch and min fee in batch) + batch_state_lock.update_user_proof_count(addr, *proof_count)?; + batch_state_lock.update_user_min_fee(addr, *min_fee)?; } + + Some(finalized_batch) } /// Takes the finalized batch as input and builds the merkle tree, posts verification data batch @@ -901,7 +846,11 @@ impl Batcher { .collect(); let batch_merkle_tree: MerkleTree = - MerkleTree::build(&batch_data_comm); + MerkleTree::build(&batch_data_comm).ok_or_else(|| { + BatcherError::TaskCreationError( + "Failed to Build Merkle Tree: Empty Batch".to_string(), + ) + })?; { let mut last_uploaded_batch_block = self.last_uploaded_batch_block.lock().await; @@ -946,14 +895,13 @@ impl Batcher { return Err(e); }; - send_batch_inclusion_data_responses(finalized_batch, &batch_merkle_tree).await + connection::send_batch_inclusion_data_responses(finalized_batch, &batch_merkle_tree).await } async fn flush_queue_and_clear_nonce_cache(&self) { warn!("Resetting state... Flushing queue and nonces"); - let mut batch_state = self.batch_state.lock().await; - - for (entry, _) in batch_state.batch_queue.iter() { + let mut batch_state_lock = self.batch_state.lock().await; + for (entry, _) in batch_state_lock.batch_queue.iter() { if let Some(ws_sink) = entry.messaging_sink.as_ref() { send_message(ws_sink.clone(), ResponseMessage::BatchReset).await; } else { @@ -961,10 +909,29 @@ impl Batcher { } } - batch_state.batch_queue.clear(); - batch_state.user_nonces.clear(); - batch_state.user_proof_count_in_batch.clear(); - batch_state.user_min_fee.clear(); + let Some(nonpaying_replacement_addr) = self.get_nonpaying_replacement_addr() else { + batch_state_lock.batch_queue.clear(); + batch_state_lock.user_states.clear(); + return; + }; + + // If there is a nonpaying address configured, then fetch the correct nonce from Ethereum + // so that it is already loaded + + let Ok(nonpaying_replacement_addr_nonce) = self + .get_user_nonce_from_ethereum(nonpaying_replacement_addr) + .await + else { + batch_state_lock.batch_queue.clear(); + batch_state_lock.user_states.clear(); + return; + }; + batch_state_lock.batch_queue.clear(); + batch_state_lock.user_states.clear(); + let nonpaying_user_state = UserState::new(nonpaying_replacement_addr_nonce); + batch_state_lock + .user_states + .insert(nonpaying_replacement_addr, nonpaying_user_state); } /// Receives new block numbers, checks if conditions are met for submission and @@ -978,7 +945,7 @@ impl Batcher { } }; - while let Some(finalized_batch) = self.is_batch_ready(block_number, gas_price).await { + if let Some(finalized_batch) = self.is_batch_ready(block_number, gas_price).await { let batch_finalization_result = self .finalize_batch(block_number, finalized_batch, gas_price) .await; @@ -1002,22 +969,6 @@ impl Batcher { finalized_batch: &[BatchQueueEntry], gas_price: U256, ) -> Result<(), BatcherError> { - let signatures: Vec<_> = finalized_batch - .iter() - .map(|entry| &entry.signature) - .cloned() - .collect(); - - let nonces: Vec<_> = finalized_batch - .iter() - .map(|entry| entry.nonced_verification_data.nonce) - .collect(); - - let max_fees: Vec<_> = finalized_batch - .iter() - .map(|entry| entry.nonced_verification_data.max_fee) - .collect(); - let s3_client = self.s3_client.clone(); let batch_merkle_root_hex = hex::encode(batch_merkle_root); info!("Batch merkle root: 0x{}", batch_merkle_root_hex); @@ -1059,18 +1010,13 @@ impl Batcher { respond_to_task_fee_limit, ); - let signatures = signatures - .iter() - .enumerate() - .map(|(i, signature)| SignatureData::new(signature, nonces[i], max_fees[i])) - .collect(); + let proof_submitters = finalized_batch.iter().map(|entry| entry.sender).collect(); match self .create_new_task( *batch_merkle_root, batch_data_pointer, - leaves, - signatures, + proof_submitters, fee_params, ) .await @@ -1094,20 +1040,15 @@ impl Batcher { &self, batch_merkle_root: [u8; 32], batch_data_pointer: String, - leaves: Vec<[u8; 32]>, - signatures: Vec, + proof_submitters: Vec
, fee_params: CreateNewTaskFeeParams, ) -> Result { - // pad leaves to next power of 2 - let padded_leaves = Self::pad_leaves(leaves); - info!("Creating task for: 0x{}", hex::encode(batch_merkle_root)); match try_create_new_task( batch_merkle_root, batch_data_pointer.clone(), - padded_leaves.clone(), - signatures.clone(), + proof_submitters.clone(), fee_params.clone(), &self.payment_service, ) @@ -1115,8 +1056,7 @@ impl Batcher { { Ok(receipt) => Ok(receipt), Err(BatcherSendError::TransactionReverted(err)) => { - // dont retry with fallback - // just return the error + // Since transaction was reverted, we don't want to retry with fallback. warn!("Transaction reverted {:?}", err); Err(BatcherError::TransactionSendError) @@ -1125,8 +1065,7 @@ impl Batcher { let receipt = try_create_new_task( batch_merkle_root, batch_data_pointer, - padded_leaves, - signatures, + proof_submitters, fee_params, &self.payment_service_fallback, ) @@ -1137,15 +1076,6 @@ impl Batcher { } } - fn pad_leaves(leaves: Vec<[u8; 32]>) -> Vec<[u8; 32]> { - let leaves_len = leaves.len(); - let last_leaf = leaves[leaves_len - 1]; - leaves - .into_iter() - .chain(repeat(last_leaf).take(leaves_len.next_power_of_two() - leaves_len)) - .collect() - } - /// Only relevant for testing and for users to easily use Aligned fn is_nonpaying(&self, addr: &Address) -> bool { self.non_paying_config @@ -1153,204 +1083,140 @@ impl Batcher { .is_some_and(|non_paying_config| non_paying_config.address == *addr) } - /// Only relevant for testing and for users to easily use Aligned + fn get_nonpaying_replacement_addr(&self) -> Option
{ + let non_paying_conf = self.non_paying_config.as_ref()?; + Some(non_paying_conf.replacement.address()) + } + + /// Only relevant for testing and for users to easily use Aligned in testnet. async fn handle_nonpaying_msg( - self: Arc, - ws_conn_sink: Arc, Message>>>, - client_msg: ClientMessage, + &self, + ws_sink: WsMessageSink, + client_msg: &ClientMessage, ) -> Result<(), Error> { - let non_paying_config = self.non_paying_config.as_ref().unwrap(); - let addr = non_paying_config.replacement.address(); + info!("Handling nonpaying message"); + let Some(non_paying_config) = self.non_paying_config.as_ref() else { + warn!("There isn't a non-paying configuration loaded. This message will be ignored"); + send_message(ws_sink.clone(), ValidityResponseMessage::InvalidNonce).await; + return Ok(()); + }; - let user_balance = self.get_user_balance(&addr).await; + let replacement_addr = non_paying_config.replacement.address(); + let Some(replacement_user_balance) = self.get_user_balance(&replacement_addr).await else { + error!("Could not get balance for non-paying address {replacement_addr:?}"); + send_message( + ws_sink.clone(), + ValidityResponseMessage::InsufficientBalance(replacement_addr), + ) + .await; + return Ok(()); + }; - if user_balance == U256::from(0) { - error!("Insufficient funds for address {:?}", addr); + if replacement_user_balance == U256::from(0) { + error!("Insufficient funds for non-paying address {replacement_addr:?}"); send_message( - ws_conn_sink.clone(), - ValidityResponseMessage::InsufficientBalance(addr), + ws_sink.clone(), + ValidityResponseMessage::InsufficientBalance(replacement_addr), ) .await; - return Ok(()); // Send error message to the client and return + return Ok(()); } - if client_msg.verification_data.verification_data.proof.len() <= self.max_proof_size { - // When pre-verification is enabled, batcher will verify proofs for faster feedback with clients - if self.pre_verification_is_enabled - && !zk_utils::verify(&client_msg.verification_data.verification_data).await - { - error!("Invalid proof detected. Verification failed."); - send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidProof).await; - return Ok(()); // Send error message to the client and return - } - - let nonced_verification_data = { - let mut batch_state = self.batch_state.lock().await; - - let nonpaying_nonce = match batch_state.user_nonces.entry(addr) { - Entry::Occupied(o) => o.into_mut(), - Entry::Vacant(vacant) => { - let nonce = match self.payment_service.user_nonces(addr).call().await { - Ok(nonce) => nonce, - Err(e) => { - error!("Failed to get nonce for address {:?}: {:?}", addr, e); - send_message( - ws_conn_sink.clone(), - ValidityResponseMessage::InvalidNonce, - ) - .await; - - return Ok(()); - } - }; - - vacant.insert(nonce) - } - }; - - info!("non paying nonce: {:?}", nonpaying_nonce); + let batch_state_lock = self.batch_state.lock().await; + let Some(non_paying_nonce) = batch_state_lock.get_user_nonce(&replacement_addr).await + else { + std::mem::drop(batch_state_lock); + error!("Nonce for non-paying address {replacement_addr:?} not found in cache."); + send_message(ws_sink.clone(), ValidityResponseMessage::InvalidProof).await; + return Ok(()); + }; - let nonce_value = *nonpaying_nonce; + debug!("Non-paying nonce: {:?}", non_paying_nonce); - *nonpaying_nonce += U256::one(); + let nonced_verification_data = NoncedVerificationData::new( + client_msg.verification_data.verification_data.clone(), + non_paying_nonce, + DEFAULT_MAX_FEE_PER_PROOF.into(), // 13_000 gas per proof * 100 gwei gas price (upper bound) + self.chain_id, + self.payment_service.address(), + ); - NoncedVerificationData::new( - client_msg.verification_data.verification_data.clone(), - nonce_value, - DEFAULT_MAX_FEE_PER_PROOF.into(), // 13_000 gas per proof * 100 gwei gas price (upper bound) - self.chain_id, - self.payment_service.address(), - ) - }; + let client_msg = ClientMessage::new( + nonced_verification_data.clone(), + non_paying_config.replacement.clone(), + ) + .await; - let client_msg = ClientMessage::new( - nonced_verification_data.clone(), - non_paying_config.replacement.clone(), + let signature = client_msg.signature; + if let Err(e) = self + .add_to_batch( + batch_state_lock, + nonced_verification_data, + ws_sink.clone(), + signature, + replacement_addr, ) - .await; - - let batch_state = self.batch_state.lock().await; - self.clone() - .add_to_batch( - batch_state, - nonced_verification_data, - ws_conn_sink.clone(), - client_msg.signature, - non_paying_config.address, - ) - .await; - } else { - error!("Proof is too large"); - send_message(ws_conn_sink.clone(), ValidityResponseMessage::ProofTooLarge).await; - return Ok(()); // Send error message to the client and return + .await + { + info!("Error while adding nonpaying address entry to batch: {e:?}"); + send_message(ws_sink, ValidityResponseMessage::AddToBatchError).await; + return Ok(()); }; - info!("Verification data message handled"); - - send_message(ws_conn_sink, ValidityResponseMessage::Valid).await; + info!("Non-paying verification data message handled"); + send_message(ws_sink, ValidityResponseMessage::Valid).await; Ok(()) } - async fn get_user_balance(&self, addr: &Address) -> U256 { - match self.payment_service.user_balances(*addr).call().await { - Ok(val) => val, - Err(_) => match self - .payment_service_fallback - .user_balances(*addr) - .call() - .await - { - Ok(balance) => balance, - Err(_) => { - warn!("Failed to get balance for address {:?}", addr); - U256::zero() - } - }, - } - } - - async fn user_balance_is_unlocked(&self, addr: &Address) -> bool { - let unlock_block = match self.payment_service.user_unlock_block(*addr).call().await { - Ok(val) => val, - Err(_) => match self - .payment_service_fallback - .user_unlock_block(*addr) - .call() - .await - { - Ok(unlock_block) => unlock_block, - Err(_) => { - warn!("Failed to get unlock block for address {:?}", addr); - U256::zero() - } - }, + /// Gets the balance of user with address `addr` from Ethereum. + /// Returns `None` if the balance couldn't be returned + /// FIXME: This should return a `Result` instead. + async fn get_user_balance(&self, addr: &Address) -> Option { + if let Ok(balance) = self.payment_service.user_balances(*addr).call().await { + return Some(balance); }; - unlock_block != U256::zero() + self.payment_service_fallback + .user_balances(*addr) + .call() + .await + .inspect_err(|_| warn!("Failed to get balance for address {:?}", addr)) + .ok() } - async fn get_gas_price(&self) -> Option { - match self.eth_ws_provider.get_gas_price().await { - Ok(gas_price) => Some(gas_price), // this is the block's max priority gas price, not the base fee - Err(_) => match self.eth_ws_provider_fallback.get_gas_price().await { - Ok(gas_price) => Some(gas_price), - Err(_) => { - warn!("Failed to get gas price"); - None - } - }, + async fn user_balance_is_unlocked(&self, addr: &Address) -> bool { + if let Ok(unlock_block) = self.payment_service.user_unlock_block(*addr).call().await { + return unlock_block != U256::zero(); } - } -} - -async fn send_batch_inclusion_data_responses( - finalized_batch: Vec, - batch_merkle_tree: &MerkleTree, -) -> Result<(), BatcherError> { - for (vd_batch_idx, entry) in finalized_batch.iter().enumerate() { - let batch_inclusion_data = BatchInclusionData::new(vd_batch_idx, batch_merkle_tree); - let response = ResponseMessage::BatchInclusionData(batch_inclusion_data); - - let serialized_response = cbor_serialize(&response) - .map_err(|e| BatcherError::SerializationError(e.to_string()))?; - - let Some(ws_sink) = entry.messaging_sink.as_ref() else { - return Err(BatcherError::WsSinkEmpty); - }; - - let sending_result = ws_sink - .write() + if let Ok(unlock_block) = self + .payment_service_fallback + .user_unlock_block(*addr) + .call() .await - .send(Message::binary(serialized_response)) - .await; - - match sending_result { - Err(Error::AlreadyClosed) => (), - Err(e) => error!("Error while sending batch inclusion data response: {}", e), - Ok(_) => (), + { + return unlock_block != U256::zero(); } - - info!("Response sent"); + warn!("Could not get user locking state"); + false } - Ok(()) -} - -async fn send_message( - ws_conn_sink: Arc, Message>>>, - message: T, -) { - match cbor_serialize(&message) { - Ok(serialized_response) => { - if let Err(err) = ws_conn_sink - .write() - .await - .send(Message::binary(serialized_response)) - .await - { - error!("Error while sending message: {}", err) - } + /// Gets the current gas price from Ethereum. + /// Returns `None` if the gas price couldn't be returned + /// FIXME: This should return a `Result` instead. + async fn get_gas_price(&self) -> Option { + if let Ok(gas_price) = self + .eth_ws_provider + .get_gas_price() + .await + .inspect_err(|e| warn!("Failed to get gas price. Trying with fallback: {e:?}")) + { + return Some(gas_price); } - Err(e) => error!("Error while serializing message: {}", e), + + self.eth_ws_provider_fallback + .get_gas_price() + .await + .inspect_err(|e| warn!("Failed to get gas price: {e:?}")) + .ok() } } diff --git a/batcher/aligned-batcher/src/types/batch_queue.rs b/batcher/aligned-batcher/src/types/batch_queue.rs index 9427cc9db..c90219d23 100644 --- a/batcher/aligned-batcher/src/types/batch_queue.rs +++ b/batcher/aligned-batcher/src/types/batch_queue.rs @@ -1,22 +1,16 @@ +use aligned_sdk::{ + communication::serialization::cbor_serialize, + core::types::{NoncedVerificationData, VerificationDataCommitment}, +}; use ethers::types::{Address, Signature, U256}; -use futures_util::stream::SplitSink; use priority_queue::PriorityQueue; use std::{ hash::{Hash, Hasher}, ops::ControlFlow, - sync::Arc, -}; -use tokio::{net::TcpStream, sync::RwLock}; -use tokio_tungstenite::{tungstenite::Message, WebSocketStream}; - -use aligned_sdk::{ - communication::serialization::cbor_serialize, - core::types::{NoncedVerificationData, VerificationDataCommitment}, }; use super::errors::BatcherError; - -type WsMessageSink = Arc, Message>>>; +use crate::connection::WsMessageSink; #[derive(Clone)] pub(crate) struct BatchQueueEntry { diff --git a/batcher/aligned-batcher/src/types/batch_state.rs b/batcher/aligned-batcher/src/types/batch_state.rs new file mode 100644 index 000000000..3e09377ac --- /dev/null +++ b/batcher/aligned-batcher/src/types/batch_state.rs @@ -0,0 +1,158 @@ +use std::collections::{hash_map::Entry, HashMap}; + +use super::{ + batch_queue::{BatchQueue, BatchQueueEntry}, + user_state::UserState, +}; +use ethers::types::{Address, U256}; +use log::debug; + +pub(crate) struct BatchState { + pub(crate) batch_queue: BatchQueue, + pub(crate) user_states: HashMap, +} + +impl BatchState { + pub(crate) fn new() -> Self { + Self { + batch_queue: BatchQueue::new(), + user_states: HashMap::new(), + } + } + + pub(crate) fn new_with_user_states(user_states: HashMap) -> Self { + Self { + batch_queue: BatchQueue::new(), + user_states, + } + } + + pub(crate) fn get_entry(&self, sender: Address, nonce: U256) -> Option<&BatchQueueEntry> { + self.batch_queue + .iter() + .map(|(entry, _)| entry) + .find(|entry| entry.sender == sender && entry.nonced_verification_data.nonce == nonce) + } + + pub(crate) fn get_user_state(&self, addr: &Address) -> Option<&UserState> { + self.user_states.get(addr) + } + + pub(crate) async fn get_user_nonce(&self, addr: &Address) -> Option { + let user_state = self.get_user_state(addr)?; + Some(user_state.nonce) + } + + pub(crate) async fn get_user_min_fee(&self, addr: &Address) -> Option { + let user_state = self.get_user_state(addr)?; + Some(user_state.min_fee) + } + + pub(crate) fn update_user_nonce(&mut self, addr: &Address, new_nonce: U256) -> Option { + if let Entry::Occupied(mut user_state) = self.user_states.entry(*addr) { + user_state.get_mut().nonce = new_nonce; + return Some(new_nonce); + } + None + } + + pub(crate) async fn get_user_proof_count(&self, addr: &Address) -> Option { + let user_state = self.get_user_state(addr)?; + Some(user_state.proofs_in_batch) + } + + /// Checks if the entry is valid + /// An entry is valid if there is no entry with the same sender, lower nonce and a lower fee + pub(crate) fn replacement_entry_is_valid( + &mut self, + replacement_entry: &BatchQueueEntry, + ) -> bool { + let replacement_max_fee = replacement_entry.nonced_verification_data.max_fee; + let nonce = replacement_entry.nonced_verification_data.nonce; + let sender = replacement_entry.sender; + + debug!( + "Checking validity of entry with sender: {:?}, nonce: {:?}, max_fee: {:?}", + sender, nonce, replacement_max_fee + ); + + // it is a valid entry only if there is no entry with the same sender, lower nonce and a lower fee + !self.batch_queue.iter().any(|(entry, _)| { + entry.sender == sender + && entry.nonced_verification_data.nonce < nonce + && entry.nonced_verification_data.max_fee < replacement_max_fee + }) + } + + pub(crate) fn get_user_min_fee_in_batch(&self, addr: &Address) -> U256 { + self.batch_queue + .iter() + .filter(|(e, _)| &e.sender == addr) + .map(|(e, _)| e.nonced_verification_data.max_fee) + .min() + .unwrap_or(U256::max_value()) + } + + pub(crate) fn update_user_min_fee( + &mut self, + addr: &Address, + new_min_fee: U256, + ) -> Option { + if let Entry::Occupied(mut user_state) = self.user_states.entry(*addr) { + user_state.get_mut().min_fee = new_min_fee; + return Some(new_min_fee); + } + None + } + + pub(crate) fn update_user_proof_count( + &mut self, + addr: &Address, + new_proof_count: usize, + ) -> Option { + if let Entry::Occupied(mut user_state) = self.user_states.entry(*addr) { + user_state.get_mut().proofs_in_batch = new_proof_count; + return Some(new_proof_count); + } + None + } + + /// Updates the user with address `addr` with the provided values of `new_nonce`, `new_min_fee` and + /// `new_proof_count`. + /// If state is updated successfully, returns the updated values inside a `Some()` + /// If the address was not found in the user states, returns `None` + pub(crate) fn update_user_state( + &mut self, + addr: &Address, + new_nonce: U256, + new_min_fee: U256, + new_proof_count: usize, + ) -> Option<(U256, U256, usize)> { + let updated_nonce = self.update_user_nonce(addr, new_nonce); + let updated_min_fee = self.update_user_min_fee(addr, new_min_fee); + let updated_proof_count = self.update_user_proof_count(addr, new_proof_count); + + if updated_nonce.is_some() && updated_min_fee.is_some() && updated_proof_count.is_some() { + return Some((new_nonce, new_min_fee, new_proof_count)); + } + None + } + + pub(crate) fn get_user_proofs_in_batch_and_min_fee(&self) -> HashMap { + let mut updated_user_states = HashMap::new(); + for (entry, _) in self.batch_queue.iter() { + let addr = entry.sender; + let user_min_fee = entry.nonced_verification_data.max_fee; + + let (proof_count, min_fee) = + updated_user_states.entry(addr).or_insert((0, user_min_fee)); + + *proof_count += 1; + if entry.nonced_verification_data.max_fee < *min_fee { + *min_fee = entry.nonced_verification_data.max_fee; + } + } + + updated_user_states + } +} diff --git a/batcher/aligned-batcher/src/types/errors.rs b/batcher/aligned-batcher/src/types/errors.rs index 4cf9ecd2a..c62de3576 100644 --- a/batcher/aligned-batcher/src/types/errors.rs +++ b/batcher/aligned-batcher/src/types/errors.rs @@ -1,6 +1,6 @@ use std::fmt; -use ethers::types::SignatureError; +use ethers::types::{Address, SignatureError}; use tokio_tungstenite::tungstenite; pub enum BatcherError { @@ -18,6 +18,7 @@ pub enum BatcherError { GasPriceError, BatchCostTooHigh, WsSinkEmpty, + AddressNotFoundInUserStates(Address), } impl From for BatcherError { @@ -83,6 +84,12 @@ impl fmt::Debug for BatcherError { "Websocket sink was found empty. This should only happen in tests" ) } + BatcherError::AddressNotFoundInUserStates(addr) => { + write!( + f, + "User with address {addr:?} was not found in Batcher user states cache" + ) + } } } } diff --git a/batcher/aligned-batcher/src/types/mod.rs b/batcher/aligned-batcher/src/types/mod.rs index 438bf92f8..893882786 100644 --- a/batcher/aligned-batcher/src/types/mod.rs +++ b/batcher/aligned-batcher/src/types/mod.rs @@ -1,3 +1,4 @@ pub(crate) mod batch_queue; - +pub(crate) mod batch_state; pub mod errors; +pub(crate) mod user_state; diff --git a/batcher/aligned-batcher/src/types/user_state.rs b/batcher/aligned-batcher/src/types/user_state.rs new file mode 100644 index 000000000..a1627b25f --- /dev/null +++ b/batcher/aligned-batcher/src/types/user_state.rs @@ -0,0 +1,21 @@ +use ethers::types::U256; + +pub(crate) struct UserState { + pub nonce: U256, + /// The minimum fee of a pending proof for a user. + /// This should always be the fee of the biggest pending nonce by the user. + /// This is used to check if a user is submitting a proof with a higher nonce and higher fee, + /// which is invalid and should be rejected. + pub min_fee: U256, + pub proofs_in_batch: usize, +} + +impl UserState { + pub(crate) fn new(nonce: U256) -> Self { + UserState { + nonce, + min_fee: U256::max_value(), + proofs_in_batch: 0, + } + } +} diff --git a/batcher/aligned-batcher/src/zk_utils/mod.rs b/batcher/aligned-batcher/src/zk_utils/mod.rs index 9dde4be3e..089c16794 100644 --- a/batcher/aligned-batcher/src/zk_utils/mod.rs +++ b/batcher/aligned-batcher/src/zk_utils/mod.rs @@ -1,6 +1,4 @@ use crate::gnark::verify_gnark; -use crate::halo2::ipa::verify_halo2_ipa; -use crate::halo2::kzg::verify_halo2_kzg; use crate::risc_zero::verify_risc_zero_proof; use crate::sp1::verify_sp1_proof; use aligned_sdk::core::types::{ProvingSystemId, VerificationData}; @@ -22,48 +20,6 @@ fn verify_internal(verification_data: &VerificationData) -> bool { warn!("Trying to verify SP1 proof but ELF was not provided. Returning false"); false } - ProvingSystemId::Halo2KZG => { - let vk = match verification_data.verification_key.as_ref() { - Some(vk) => vk, - None => { - warn!("Halo2-KZG verification key missing"); - return false; - } - }; - - let pub_input = match verification_data.pub_input.as_ref() { - Some(pub_input) => pub_input, - None => { - warn!("Halo2-KZG public input missing"); - return false; - } - }; - - let is_valid = verify_halo2_kzg(&verification_data.proof, pub_input, vk); - debug!("Halo2-KZG proof is valid: {}", is_valid); - is_valid - } - ProvingSystemId::Halo2IPA => { - let vk = match verification_data.verification_key.as_ref() { - Some(vk) => vk, - None => { - warn!("Halo2-IPA verification key missing"); - return false; - } - }; - - let pub_input = match verification_data.pub_input.as_ref() { - Some(pub_input) => pub_input, - None => { - warn!("Halo2-IPA public input missing"); - return false; - } - }; - - let is_valid = verify_halo2_ipa(&verification_data.proof, pub_input, vk); - debug!("Halo2-IPA proof is valid: {}", is_valid); - is_valid - } ProvingSystemId::Risc0 => { if let (Some(image_id_slice), Some(pub_input)) = ( &verification_data.vm_program_code, diff --git a/batcher/aligned-sdk/Cargo.toml b/batcher/aligned-sdk/Cargo.toml index 004499ffa..3704c6072 100644 --- a/batcher/aligned-sdk/Cargo.toml +++ b/batcher/aligned-sdk/Cargo.toml @@ -21,7 +21,7 @@ tokio = { version = "1.37.0", features = [ "rt-multi-thread", "sync", ] } -lambdaworks-crypto = { version = "0.7.0", features = ["serde"] } +lambdaworks-crypto = { git = "https://github.com/lambdaclass/lambdaworks.git", rev = "efd46f0b0aea3aa95d94bba7de86cb96611b40d3", features = ["serde"] } serde = { version = "1.0.201", features = ["derive"] } sha3 = { version = "0.10.8" } url = "2.5.0" diff --git a/batcher/aligned-sdk/abi/BatcherPaymentService.json b/batcher/aligned-sdk/abi/BatcherPaymentService.json index 00144cf0f..e4bba0a09 100644 --- a/batcher/aligned-sdk/abi/BatcherPaymentService.json +++ b/batcher/aligned-sdk/abi/BatcherPaymentService.json @@ -1 +1,1407 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"UNLOCK_BLOCK_COUNT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"alignedLayerServiceManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAlignedLayerServiceManager"}],"stateMutability":"view"},{"type":"function","name":"batcherWallet","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"createNewTask","inputs":[{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"batchDataPointer","type":"string","internalType":"string"},{"name":"leaves","type":"bytes32[]","internalType":"bytes32[]"},{"name":"signatures","type":"tuple[]","internalType":"struct BatcherPaymentService.SignatureData[]","components":[{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"maxFee","type":"uint256","internalType":"uint256"}]},{"name":"feeForAggregator","type":"uint256","internalType":"uint256"},{"name":"feePerProof","type":"uint256","internalType":"uint256"},{"name":"maxFeeAllowedToRespond","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"_alignedLayerServiceManager","type":"address","internalType":"contract IAlignedLayerServiceManager"},{"name":"_batcherPaymentServiceOwner","type":"address","internalType":"address"},{"name":"_batcherWallet","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lock","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unlock","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"userData","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"unlockBlock","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"user_balances","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"user_nonces","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"user_unlock_block","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BalanceLocked","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BalanceUnlocked","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"unlockBlock","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsWithdrawn","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PaymentReceived","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TaskCreated","inputs":[{"name":"batchMerkleRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"feePerProof","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"FundsLocked","inputs":[{"name":"unlockBlock","type":"uint256","internalType":"uint256"},{"name":"currentBlock","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientFeeForAggregator","inputs":[{"name":"required","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidMaxFee","inputs":[{"name":"maxFee","type":"uint256","internalType":"uint256"},{"name":"actualFee","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidMerkleRoot","inputs":[{"name":"expected","type":"bytes32","internalType":"bytes32"},{"name":"actual","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidNonce","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"LeavesNotPowerOfTwo","inputs":[{"name":"leavesQty","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NoFeePerProof","inputs":[]},{"type":"error","name":"NoLeavesSubmitted","inputs":[]},{"type":"error","name":"NoProofSubmitterSignatures","inputs":[]},{"type":"error","name":"NotEnoughLeaves","inputs":[{"name":"leavesQty","type":"uint256","internalType":"uint256"},{"name":"signaturesQty","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyBatcherAllowed","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"PayerInsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SignerInsufficientBalance","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"required","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"UserHasNoFundsToLock","inputs":[{"name":"user","type":"address","internalType":"address"}]},{"type":"error","name":"UserHasNoFundsToUnlock","inputs":[{"name":"user","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100e2565b600054610100900460ff161561008e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e0576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516122a06200011a600039600081816105ce0152818161060e015281816106c001528181610700015261079301526122a06000f3fe60806040526004361061012e5760003560e01c80635c975abb116100ab578063a69df4b51161006f578063a69df4b5146103a5578063c0c53b8b146103ba578063c8910913146103da578063df5ffbc614610431578063f2fde38b14610451578063f83d08ba1461047157600080fd5b80635c975abb1461031a578063715018a61461033d5780638456cb59146103525780638da5cb5b14610367578063953ef8071461038557600080fd5b80634d5431ea116100f25780634d5431ea1461026c5780634f1ef286146102a557806352d1902d146102b857806358b96e27146102cd5780635a3f631a1461030557600080fd5b806317d89c4e146101935780632df4e21e146101df5780632e1a7d4d146102155780633659cfe6146102375780633f4ba83a1461025757600080fd5b3661018e5733600090815260fd602052604081208054349290610152908490611c3f565b909155505060405134815233907f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709060200160405180910390a2005b600080fd5b34801561019f57600080fd5b506101cc6101ae366004611c6c565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b3480156101eb57600080fd5b506101cc6101fa366004611c6c565b6001600160a01b0316600090815260fd602052604090205490565b34801561022157600080fd5b50610235610230366004611c89565b610486565b005b34801561024357600080fd5b50610235610252366004611c6c565b6105c3565b34801561026357600080fd5b506102356106a3565b34801561027857600080fd5b506101cc610287366004611c6c565b6001600160a01b0316600090815260fd602052604090206001015490565b6102356102b3366004611cb8565b6106b5565b3480156102c457600080fd5b506101cc610786565b3480156102d957600080fd5b5060fc546102ed906001600160a01b031681565b6040516001600160a01b0390911681526020016101d6565b34801561031157600080fd5b506101cc606481565b34801561032657600080fd5b5060655460ff1660405190151581526020016101d6565b34801561034957600080fd5b50610235610839565b34801561035e57600080fd5b5061023561084b565b34801561037357600080fd5b506033546001600160a01b03166102ed565b34801561039157600080fd5b5060fb546102ed906001600160a01b031681565b3480156103b157600080fd5b5061023561085b565b3480156103c657600080fd5b506102356103d5366004611d7c565b6108ef565b3480156103e657600080fd5b506104166103f5366004611c6c565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101d6565b34801561043d57600080fd5b5061023561044c366004611e0c565b610a44565b34801561045d57600080fd5b5061023561046c366004611c6c565b610c88565b34801561047d57600080fd5b50610235610cfe565b61048e610d72565b33600090815260fd6020526040902080548211156104d15780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806104e55750438160010154115b15610512576001810154604051635f6e272d60e11b815260048101919091524360248201526044016104c8565b818160000160008282546105269190611ef8565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f19350505050158015610589573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561060c5760405162461bcd60e51b81526004016104c890611f0f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610655600080516020612224833981519152546001600160a01b031690565b6001600160a01b03161461067b5760405162461bcd60e51b81526004016104c890611f5b565b61068481610db8565b604080516000808252602082019092526106a091839190610dc0565b50565b6106ab610f30565b6106b3610f8a565b565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156106fe5760405162461bcd60e51b81526004016104c890611f0f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610747600080516020612224833981519152546001600160a01b031690565b6001600160a01b03161461076d5760405162461bcd60e51b81526004016104c890611f5b565b61077682610db8565b61078282826001610dc0565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108265760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104c8565b5060008051602061222483398151915290565b610841610f30565b6106b36000610fdc565b610853610f30565b6106b361102e565b610863610d72565b33600090815260fd60205260409020546108925760405163b38340cf60e01b81523360048201526024016104c8565b61089d606443611c3f565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed843916108e591815260200190565b60405180910390a2565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b61098c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104c8565b6000805460ff1916600117905580156109af576000805461ff0019166101001790555b6109b761106b565b6109bf61109a565b6109c883610fdc565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610a3e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60fc546001600160a01b03163314610a71576040516302a5785160e31b81523360048201526024016104c8565b610a79610d72565b858481610a995760405163e5180e0360e01b815260040160405180910390fd5b80610ab757604051630c9d0b0160e21b815260040160405180910390fd5b80821015610ae25760405163320f0a1b60e01b815260048101839052602481018290526044016104c8565b610aed600183611ef8565b821615610b1057604051636b1651e160e01b8152600481018390526024016104c8565b83610b2e576040516351d432c560e11b815260040160405180910390fd5b84610b398286611fa7565b11610b6b5784610b498286611fa7565b604051637899ec7160e01b8152600481019290925260248201526044016104c8565b610b7989898e8a8a896110c1565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663d66eaabd868e8e8e886040518663ffffffff1660e01b8152600401610bc19493929190611fc6565b6000604051808303818588803b158015610bda57600080fd5b505af1158015610bee573d6000803e3d6000fd5b50505050508b7f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375885604051610c2591815260200190565b60405180910390a260fc546001600160a01b03166108fc86610c478488611fa7565b610c519190611ef8565b6040518115909202916000818181858888f19350505050158015610c79573d6000803e3d6000fd5b50505050505050505050505050565b610c90610f30565b6001600160a01b038116610cf55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104c8565b6106a081610fdc565b610d06610d72565b33600090815260fd6020526040902054610d355760405163366095e160e11b81523360048201526024016104c8565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106b35760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104c8565b6106a0610f30565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610df857610df383611451565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610e52575060408051601f3d908101601f19168201909252610e4f91810190612006565b60015b610eb55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104c8565b6000805160206122248339815191528114610f245760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104c8565b50610df38383836114ed565b6033546001600160a01b031633146106b35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104c8565b610f92611512565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611036610d72565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610fbf3390565b600054610100900460ff166110925760405162461bcd60e51b81526004016104c89061201f565b6106b361155b565b600054610100900460ff166106b35760405162461bcd60e51b81526004016104c89061201f565b60006110ce60028761206a565b905060008167ffffffffffffffff8111156110eb576110eb611ca2565b604051908082528060200260200182016040528015611114578160200160208202803683370190505b50905060005b828163ffffffff16101561123f57888861113583600261208c565b63ffffffff1681811061114a5761114a6120b8565b905060200201358989836002611160919061208c565b61116b9060016120ce565b63ffffffff16818110611180576111806120b8565b905060200201356040516020016111a1929190918252602082015260400190565b60405160208183030381529060405280519060200120828263ffffffff16815181106111cf576111cf6120b8565b60200260200101818152505061122d89898363ffffffff168181106111f6576111f66120b8565b9050602002013587878463ffffffff16818110611215576112156120b8565b905060200281019061122791906120f6565b8661158b565b8061123781612116565b91505061111a565b63ffffffff811685111561127a5761126889898363ffffffff168181106111f6576111f66120b8565b8061127281612116565b91505061123f565b61128560028461206a565b92505b8215611378575060005b828163ffffffff16101561136657816112ac82600261208c565b63ffffffff16815181106112c2576112c26120b8565b6020026020010151828260026112d8919061208c565b6112e39060016120ce565b63ffffffff16815181106112f9576112f96120b8565b602002602001015160405160200161131b929190918252602082015260400190565b60405160208183030381529060405280519060200120828263ffffffff1681518110611349576113496120b8565b60209081029190910101528061135e81612116565b915050611292565b61137160028461206a565b9250611288565b60018814156113e5578689896000818110611395576113956120b8565b90506020020135146113e05786898960008181106113b5576113b56120b8565b905060200201356040516327c4ed9760e21b81526004016104c8929190918252602082015260400190565b611446565b86826000815181106113f9576113f96120b8565b60200260200101511461144657868260008151811061141a5761141a6120b8565b60200260200101516040516327c4ed9760e21b81526004016104c8929190918252602082015260400190565b505050505050505050565b6001600160a01b0381163b6114be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104c8565b60008051602061222483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6114f683611740565b6000825111806115035750805b15610df357610a3e8383611780565b60655460ff166106b35760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104c8565b600054610100900460ff166115825760405162461bcd60e51b81526004016104c89061201f565b6106b333610fdc565b80826040013510156115bd5760408051637acd6fa560e11b8152908301356004820152602481018290526044016104c8565b6040805160208181018690528401358183015290830135606082015246608082015260009060a00160408051601f1981840301815291905280516020909101209050600061164b61160e858061213a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086939250506118749050565b90506001600160a01b03811661167457604051638baa579f60e01b815260040160405180910390fd5b6001600160a01b038116600090815260fd6020908152604090912060028101549091860135146116ca5760028101546040516306427aeb60e01b81526004810191909152602086013560248201526044016104c8565b6002810180549060006116dc83612181565b9091555050805484111561171f578054604051632557019960e21b81526001600160a01b03841660048201526024810191909152604481018590526064016104c8565b838160000160008282546117339190611ef8565b9091555050505050505050565b61174981611451565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6117e85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104c8565b600080846001600160a01b03168460405161180391906121c8565b600060405180830381855af49150503d806000811461183e576040519150601f19603f3d011682016040523d82523d6000602084013e611843565b606091505b509150915061186b828260405180606001604052806027815260200161224460279139611898565b95945050505050565b600080600061188385856118d8565b9150915061189081611948565b509392505050565b606083156118a75750816118d1565b8251156118b75782518084602001fd5b8160405162461bcd60e51b81526004016104c891906121da565b9392505050565b60008082516041141561190f5760208301516040840151606085015160001a61190387828585611b03565b94509450505050611941565b825160401415611939576020830151604084015161192e868383611bf0565b935093505050611941565b506000905060025b9250929050565b600081600481111561195c5761195c61220d565b14156119655750565b60018160048111156119795761197961220d565b14156119c75760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016104c8565b60028160048111156119db576119db61220d565b1415611a295760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016104c8565b6003816004811115611a3d57611a3d61220d565b1415611a965760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016104c8565b6004816004811115611aaa57611aaa61220d565b14156106a05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016104c8565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611b3a5750600090506003611be7565b8460ff16601b14158015611b5257508460ff16601c14155b15611b635750600090506004611be7565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611bb7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611be057600060019250925050611be7565b9150600090505b94509492505050565b6000806001600160ff1b03831681611c0d60ff86901c601b611c3f565b9050611c1b87828885611b03565b935093505050935093915050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611c5257611c52611c29565b500190565b6001600160a01b03811681146106a057600080fd5b600060208284031215611c7e57600080fd5b81356118d181611c57565b600060208284031215611c9b57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611ccb57600080fd5b8235611cd681611c57565b9150602083013567ffffffffffffffff80821115611cf357600080fd5b818501915085601f830112611d0757600080fd5b813581811115611d1957611d19611ca2565b604051601f8201601f19908116603f01168101908382118183101715611d4157611d41611ca2565b81604052828152886020848701011115611d5a57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080600060608486031215611d9157600080fd5b8335611d9c81611c57565b92506020840135611dac81611c57565b91506040840135611dbc81611c57565b809150509250925092565b60008083601f840112611dd957600080fd5b50813567ffffffffffffffff811115611df157600080fd5b6020830191508360208260051b850101111561194157600080fd5b60008060008060008060008060008060e08b8d031215611e2b57600080fd5b8a35995060208b013567ffffffffffffffff80821115611e4a57600080fd5b818d0191508d601f830112611e5e57600080fd5b813581811115611e6d57600080fd5b8e6020828501011115611e7f57600080fd5b602083019b50809a505060408d0135915080821115611e9d57600080fd5b611ea98e838f01611dc7565b909950975060608d0135915080821115611ec257600080fd5b50611ecf8d828e01611dc7565b9b9e9a9d50989b979a9699969760808101359760a0820135975060c09091013595509350505050565b600082821015611f0a57611f0a611c29565b500390565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000816000190483118215151615611fc157611fc1611c29565b500290565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561201857600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008261208757634e487b7160e01b600052601260045260246000fd5b500490565b600063ffffffff808316818516818304811182151516156120af576120af611c29565b02949350505050565b634e487b7160e01b600052603260045260246000fd5b600063ffffffff8083168185168083038211156120ed576120ed611c29565b01949350505050565b60008235605e1983360301811261210c57600080fd5b9190910192915050565b600063ffffffff8083168181141561213057612130611c29565b6001019392505050565b6000808335601e1984360301811261215157600080fd5b83018035915067ffffffffffffffff82111561216c57600080fd5b60200191503681900382131561194157600080fd5b600060001982141561219557612195611c29565b5060010190565b60005b838110156121b757818101518382015260200161219f565b83811115610a3e5750506000910152565b6000825161210c81846020870161219c565b60208152600082518060208401526121f981604085016020870161219c565b601f01601f19169190910160400192915050565b634e487b7160e01b600052602160045260246000fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220959de0d6d14188f5ff3b8a9d10b8c92e67e70351a58316ad19e0cebfa929c0b064736f6c634300080c0033","sourceMap":"576:9930:181:-:0;;;1332:4:47;1289:48;;2816:53:181;;;;;;;;;-1:-1:-1;2840:22:181;:20;:22::i;:::-;576:9930;;5388:279:46;5456:13;;;;;;;5455:14;5447:66;;;;-1:-1:-1;;;5447:66:46;;216:2:185;5447:66:46;;;198:21:185;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:185;;;338:37;392:19;;5447:66:46;;;;;;;;5527:12;;5542:15;5527:12;;;:30;5523:138;;;5573:12;:30;;-1:-1:-1;;5573:30:46;5588:15;5573:30;;;;;;5622:28;;564:36:185;;;5622:28:46;;552:2:185;537:18;5622:28:46;;;;;;;5523:138;5388:279::o;422:184:185:-;576:9930:181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061012e5760003560e01c80635c975abb116100ab578063a69df4b51161006f578063a69df4b5146103a5578063c0c53b8b146103ba578063c8910913146103da578063df5ffbc614610431578063f2fde38b14610451578063f83d08ba1461047157600080fd5b80635c975abb1461031a578063715018a61461033d5780638456cb59146103525780638da5cb5b14610367578063953ef8071461038557600080fd5b80634d5431ea116100f25780634d5431ea1461026c5780634f1ef286146102a557806352d1902d146102b857806358b96e27146102cd5780635a3f631a1461030557600080fd5b806317d89c4e146101935780632df4e21e146101df5780632e1a7d4d146102155780633659cfe6146102375780633f4ba83a1461025757600080fd5b3661018e5733600090815260fd602052604081208054349290610152908490611c3f565b909155505060405134815233907f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709060200160405180910390a2005b600080fd5b34801561019f57600080fd5b506101cc6101ae366004611c6c565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b3480156101eb57600080fd5b506101cc6101fa366004611c6c565b6001600160a01b0316600090815260fd602052604090205490565b34801561022157600080fd5b50610235610230366004611c89565b610486565b005b34801561024357600080fd5b50610235610252366004611c6c565b6105c3565b34801561026357600080fd5b506102356106a3565b34801561027857600080fd5b506101cc610287366004611c6c565b6001600160a01b0316600090815260fd602052604090206001015490565b6102356102b3366004611cb8565b6106b5565b3480156102c457600080fd5b506101cc610786565b3480156102d957600080fd5b5060fc546102ed906001600160a01b031681565b6040516001600160a01b0390911681526020016101d6565b34801561031157600080fd5b506101cc606481565b34801561032657600080fd5b5060655460ff1660405190151581526020016101d6565b34801561034957600080fd5b50610235610839565b34801561035e57600080fd5b5061023561084b565b34801561037357600080fd5b506033546001600160a01b03166102ed565b34801561039157600080fd5b5060fb546102ed906001600160a01b031681565b3480156103b157600080fd5b5061023561085b565b3480156103c657600080fd5b506102356103d5366004611d7c565b6108ef565b3480156103e657600080fd5b506104166103f5366004611c6c565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101d6565b34801561043d57600080fd5b5061023561044c366004611e0c565b610a44565b34801561045d57600080fd5b5061023561046c366004611c6c565b610c88565b34801561047d57600080fd5b50610235610cfe565b61048e610d72565b33600090815260fd6020526040902080548211156104d15780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806104e55750438160010154115b15610512576001810154604051635f6e272d60e11b815260048101919091524360248201526044016104c8565b818160000160008282546105269190611ef8565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f19350505050158015610589573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561060c5760405162461bcd60e51b81526004016104c890611f0f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610655600080516020612224833981519152546001600160a01b031690565b6001600160a01b03161461067b5760405162461bcd60e51b81526004016104c890611f5b565b61068481610db8565b604080516000808252602082019092526106a091839190610dc0565b50565b6106ab610f30565b6106b3610f8a565b565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156106fe5760405162461bcd60e51b81526004016104c890611f0f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610747600080516020612224833981519152546001600160a01b031690565b6001600160a01b03161461076d5760405162461bcd60e51b81526004016104c890611f5b565b61077682610db8565b61078282826001610dc0565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108265760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104c8565b5060008051602061222483398151915290565b610841610f30565b6106b36000610fdc565b610853610f30565b6106b361102e565b610863610d72565b33600090815260fd60205260409020546108925760405163b38340cf60e01b81523360048201526024016104c8565b61089d606443611c3f565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed843916108e591815260200190565b60405180910390a2565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b61098c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104c8565b6000805460ff1916600117905580156109af576000805461ff0019166101001790555b6109b761106b565b6109bf61109a565b6109c883610fdc565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610a3e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60fc546001600160a01b03163314610a71576040516302a5785160e31b81523360048201526024016104c8565b610a79610d72565b858481610a995760405163e5180e0360e01b815260040160405180910390fd5b80610ab757604051630c9d0b0160e21b815260040160405180910390fd5b80821015610ae25760405163320f0a1b60e01b815260048101839052602481018290526044016104c8565b610aed600183611ef8565b821615610b1057604051636b1651e160e01b8152600481018390526024016104c8565b83610b2e576040516351d432c560e11b815260040160405180910390fd5b84610b398286611fa7565b11610b6b5784610b498286611fa7565b604051637899ec7160e01b8152600481019290925260248201526044016104c8565b610b7989898e8a8a896110c1565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663d66eaabd868e8e8e886040518663ffffffff1660e01b8152600401610bc19493929190611fc6565b6000604051808303818588803b158015610bda57600080fd5b505af1158015610bee573d6000803e3d6000fd5b50505050508b7f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375885604051610c2591815260200190565b60405180910390a260fc546001600160a01b03166108fc86610c478488611fa7565b610c519190611ef8565b6040518115909202916000818181858888f19350505050158015610c79573d6000803e3d6000fd5b50505050505050505050505050565b610c90610f30565b6001600160a01b038116610cf55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104c8565b6106a081610fdc565b610d06610d72565b33600090815260fd6020526040902054610d355760405163366095e160e11b81523360048201526024016104c8565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106b35760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104c8565b6106a0610f30565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610df857610df383611451565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610e52575060408051601f3d908101601f19168201909252610e4f91810190612006565b60015b610eb55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104c8565b6000805160206122248339815191528114610f245760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104c8565b50610df38383836114ed565b6033546001600160a01b031633146106b35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104c8565b610f92611512565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611036610d72565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610fbf3390565b600054610100900460ff166110925760405162461bcd60e51b81526004016104c89061201f565b6106b361155b565b600054610100900460ff166106b35760405162461bcd60e51b81526004016104c89061201f565b60006110ce60028761206a565b905060008167ffffffffffffffff8111156110eb576110eb611ca2565b604051908082528060200260200182016040528015611114578160200160208202803683370190505b50905060005b828163ffffffff16101561123f57888861113583600261208c565b63ffffffff1681811061114a5761114a6120b8565b905060200201358989836002611160919061208c565b61116b9060016120ce565b63ffffffff16818110611180576111806120b8565b905060200201356040516020016111a1929190918252602082015260400190565b60405160208183030381529060405280519060200120828263ffffffff16815181106111cf576111cf6120b8565b60200260200101818152505061122d89898363ffffffff168181106111f6576111f66120b8565b9050602002013587878463ffffffff16818110611215576112156120b8565b905060200281019061122791906120f6565b8661158b565b8061123781612116565b91505061111a565b63ffffffff811685111561127a5761126889898363ffffffff168181106111f6576111f66120b8565b8061127281612116565b91505061123f565b61128560028461206a565b92505b8215611378575060005b828163ffffffff16101561136657816112ac82600261208c565b63ffffffff16815181106112c2576112c26120b8565b6020026020010151828260026112d8919061208c565b6112e39060016120ce565b63ffffffff16815181106112f9576112f96120b8565b602002602001015160405160200161131b929190918252602082015260400190565b60405160208183030381529060405280519060200120828263ffffffff1681518110611349576113496120b8565b60209081029190910101528061135e81612116565b915050611292565b61137160028461206a565b9250611288565b60018814156113e5578689896000818110611395576113956120b8565b90506020020135146113e05786898960008181106113b5576113b56120b8565b905060200201356040516327c4ed9760e21b81526004016104c8929190918252602082015260400190565b611446565b86826000815181106113f9576113f96120b8565b60200260200101511461144657868260008151811061141a5761141a6120b8565b60200260200101516040516327c4ed9760e21b81526004016104c8929190918252602082015260400190565b505050505050505050565b6001600160a01b0381163b6114be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104c8565b60008051602061222483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6114f683611740565b6000825111806115035750805b15610df357610a3e8383611780565b60655460ff166106b35760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104c8565b600054610100900460ff166115825760405162461bcd60e51b81526004016104c89061201f565b6106b333610fdc565b80826040013510156115bd5760408051637acd6fa560e11b8152908301356004820152602481018290526044016104c8565b6040805160208181018690528401358183015290830135606082015246608082015260009060a00160408051601f1981840301815291905280516020909101209050600061164b61160e858061213a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086939250506118749050565b90506001600160a01b03811661167457604051638baa579f60e01b815260040160405180910390fd5b6001600160a01b038116600090815260fd6020908152604090912060028101549091860135146116ca5760028101546040516306427aeb60e01b81526004810191909152602086013560248201526044016104c8565b6002810180549060006116dc83612181565b9091555050805484111561171f578054604051632557019960e21b81526001600160a01b03841660048201526024810191909152604481018590526064016104c8565b838160000160008282546117339190611ef8565b9091555050505050505050565b61174981611451565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6117e85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104c8565b600080846001600160a01b03168460405161180391906121c8565b600060405180830381855af49150503d806000811461183e576040519150601f19603f3d011682016040523d82523d6000602084013e611843565b606091505b509150915061186b828260405180606001604052806027815260200161224460279139611898565b95945050505050565b600080600061188385856118d8565b9150915061189081611948565b509392505050565b606083156118a75750816118d1565b8251156118b75782518084602001fd5b8160405162461bcd60e51b81526004016104c891906121da565b9392505050565b60008082516041141561190f5760208301516040840151606085015160001a61190387828585611b03565b94509450505050611941565b825160401415611939576020830151604084015161192e868383611bf0565b935093505050611941565b506000905060025b9250929050565b600081600481111561195c5761195c61220d565b14156119655750565b60018160048111156119795761197961220d565b14156119c75760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016104c8565b60028160048111156119db576119db61220d565b1415611a295760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016104c8565b6003816004811115611a3d57611a3d61220d565b1415611a965760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016104c8565b6004816004811115611aaa57611aaa61220d565b14156106a05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016104c8565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611b3a5750600090506003611be7565b8460ff16601b14158015611b5257508460ff16601c14155b15611b635750600090506004611be7565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611bb7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611be057600060019250925050611be7565b9150600090505b94509492505050565b6000806001600160ff1b03831681611c0d60ff86901c601b611c3f565b9050611c1b87828885611b03565b935093505050935093915050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611c5257611c52611c29565b500190565b6001600160a01b03811681146106a057600080fd5b600060208284031215611c7e57600080fd5b81356118d181611c57565b600060208284031215611c9b57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611ccb57600080fd5b8235611cd681611c57565b9150602083013567ffffffffffffffff80821115611cf357600080fd5b818501915085601f830112611d0757600080fd5b813581811115611d1957611d19611ca2565b604051601f8201601f19908116603f01168101908382118183101715611d4157611d41611ca2565b81604052828152886020848701011115611d5a57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080600060608486031215611d9157600080fd5b8335611d9c81611c57565b92506020840135611dac81611c57565b91506040840135611dbc81611c57565b809150509250925092565b60008083601f840112611dd957600080fd5b50813567ffffffffffffffff811115611df157600080fd5b6020830191508360208260051b850101111561194157600080fd5b60008060008060008060008060008060e08b8d031215611e2b57600080fd5b8a35995060208b013567ffffffffffffffff80821115611e4a57600080fd5b818d0191508d601f830112611e5e57600080fd5b813581811115611e6d57600080fd5b8e6020828501011115611e7f57600080fd5b602083019b50809a505060408d0135915080821115611e9d57600080fd5b611ea98e838f01611dc7565b909950975060608d0135915080821115611ec257600080fd5b50611ecf8d828e01611dc7565b9b9e9a9d50989b979a9699969760808101359760a0820135975060c09091013595509350505050565b600082821015611f0a57611f0a611c29565b500390565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000816000190483118215151615611fc157611fc1611c29565b500290565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561201857600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008261208757634e487b7160e01b600052601260045260246000fd5b500490565b600063ffffffff808316818516818304811182151516156120af576120af611c29565b02949350505050565b634e487b7160e01b600052603260045260246000fd5b600063ffffffff8083168185168083038211156120ed576120ed611c29565b01949350505050565b60008235605e1983360301811261210c57600080fd5b9190910192915050565b600063ffffffff8083168181141561213057612130611c29565b6001019392505050565b6000808335601e1984360301811261215157600080fd5b83018035915067ffffffffffffffff82111561216c57600080fd5b60200191503681900382131561194157600080fd5b600060001982141561219557612195611c29565b5060010190565b60005b838110156121b757818101518382015260200161219f565b83811115610a3e5750506000910152565b6000825161210c81846020870161219c565b60208152600082518060208401526121f981604085016020870161219c565b601f01601f19169190910160400192915050565b634e487b7160e01b600052602160045260246000fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220959de0d6d14188f5ff3b8a9d10b8c92e67e70351a58316ad19e0cebfa929c0b064736f6c634300080c0033","sourceMap":"576:9930:181:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3563:10;3554:20;;;;:8;:20;;;;;:41;;3586:9;;3554:20;:41;;3586:9;;3554:41;:::i;:::-;;;;-1:-1:-1;;3610:38:181;;3638:9;425:25:185;;3626:10:181;;3610:38;;413:2:185;398:18;3610:38:181;;;;;;;576:9930;;;;;10256:115;;;;;;;;;;-1:-1:-1;10256:115:181;;;;;:::i;:::-;-1:-1:-1;;;;;10341:17:181;10315:7;10341:17;;;:8;:17;;;;;:23;;;;10256:115;;;;425:25:185;;;413:2;398:18;10256:115:181;;;;;;;;10131:119;;;;;;;;;;-1:-1:-1;10131:119:181;;;;;:::i;:::-;-1:-1:-1;;;;;10218:17:181;10192:7;10218:17;;;:8;:17;;;;;:25;;10131:119;6071:647;;;;;;;;;;-1:-1:-1;6071:647:181;;;;;:::i;:::-;;:::i;:::-;;3315:197:47;;;;;;;;;;-1:-1:-1;3315:197:47;;;;;:::i;:::-;;:::i;6789:63:181:-;;;;;;;;;;;;;:::i;10377:127::-;;;;;;;;;;-1:-1:-1;10377:127:181;;;;;:::i;:::-;-1:-1:-1;;;;;10468:17:181;10442:7;10468:17;;;:8;:17;;;;;:29;;;;10377:127;3761:222:47;;;;;;:::i;:::-;;:::i;3004:131::-;;;;;;;;;;;;;:::i;2551:28:181:-;;;;;;;;;;-1:-1:-1;2551:28:181;;;;-1:-1:-1;;;;;2551:28:181;;;;;;-1:-1:-1;;;;;2573:32:185;;;2555:51;;2543:2;2528:18;2551:28:181;2409:203:185;751:48:181;;;;;;;;;;;;796:3;751:48;;1858:84:48;;;;;;;;;;-1:-1:-1;1928:7:48;;;;1858:84;;2782:14:185;;2775:22;2757:41;;2745:2;2730:18;1858:84:48;2617:187:185;2071:101:42;;;;;;;;;;;;;:::i;6724:59:181:-;;;;;;;;;;;;;:::i;1441:85:42:-;;;;;;;;;;-1:-1:-1;1513:6:42;;-1:-1:-1;;;;;1513:6:42;1441:85;;2483:61:181;;;;;;;;;;-1:-1:-1;2483:61:181;;;;-1:-1:-1;;;;;2483:61:181;;;5498:317;;;;;;;;;;;;;:::i;3043:443::-;;;;;;;;;;-1:-1:-1;3043:443:181;;;;;:::i;:::-;;:::i;2610:44::-;;;;;;;;;;-1:-1:-1;2610:44:181;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3827:25:185;;;3883:2;3868:18;;3861:34;;;;3911:18;;;3904:34;3815:2;3800:18;2610:44:181;3625:319:185;3685:1807:181;;;;;;;;;;-1:-1:-1;3685:1807:181;;;;;:::i;:::-;;:::i;2321:198:42:-;;;;;;;;;;-1:-1:-1;2321:198:42;;;;;:::i;:::-;;:::i;5821:244:181:-;;;;;;;;;;;;;:::i;6071:647::-;1482:19:48;:17;:19::i;:::-;6177:10:181::1;6138:27;6168:20:::0;;;:8:::1;:20;::::0;;;;6202:18;;:27;-1:-1:-1;6198:117:181::1;;;6277:18:::0;;6252:52:::1;::::0;-1:-1:-1;;;6252:52:181;;::::1;::::0;::::1;6032:25:185::0;;;;6073:18;;;6066:34;;;6005:18;;6252:52:181::1;;;;;;;;6198:117;6342:22;::::0;::::1;::::0;:27;;:68:::1;;;6398:12;6373:10;:22;;;:37;6342:68;6325:177;;;6454:22;::::0;::::1;::::0;6442:49:::1;::::0;-1:-1:-1;;;6442:49:181;;::::1;::::0;::::1;6032:25:185::0;;;;6478:12:181::1;6073:18:185::0;;;6066:34;6005:18;;6442:49:181::1;5858:248:185::0;6325:177:181::1;6534:6;6512:10;:18;;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;6575:1:181::1;6550:22;::::0;::::1;:26:::0;;;6591:25:::1;::::0;6605:10:::1;::::0;6591:25:::1;::::0;::::1;6626:36;::::0;6634:10:::1;::::0;6626:36;::::1;;;::::0;6655:6;;6626:36:::1;::::0;;;6655:6;6634:10;6626:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;6677:34:181::1;::::0;425:25:185;;;6692:10:181::1;::::0;6677:34:::1;::::0;413:2:185;398:18;6677:34:181::1;;;;;;;6128:590;6071:647:::0;:::o;3315:197:47:-;1889:4;-1:-1:-1;;;;;1898:6:47;1881:23;;;1873:80;;;;-1:-1:-1;;;1873:80:47;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:47;:20;-1:-1:-1;;;;;;;;;;;1642:65:44;-1:-1:-1;;;;;1642:65:44;;1563:151;1971:20:47;-1:-1:-1;;;;;1971:30:47;;1963:87;;;;-1:-1:-1;;;1963:87:47;;;;;;;:::i;:::-;3398:36:::1;3416:17;3398;:36::i;:::-;3485:12;::::0;;3495:1:::1;3485:12:::0;;;::::1;::::0;::::1;::::0;;;3444:61:::1;::::0;3466:17;;3485:12;3444:21:::1;:61::i;:::-;3315:197:::0;:::o;6789:63:181:-;1334:13:42;:11;:13::i;:::-;6835:10:181::1;:8;:10::i;:::-;6789:63::o:0;3761:222:47:-;1889:4;-1:-1:-1;;;;;1898:6:47;1881:23;;;1873:80;;;;-1:-1:-1;;;1873:80:47;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:47;:20;-1:-1:-1;;;;;;;;;;;1642:65:44;-1:-1:-1;;;;;1642:65:44;;1563:151;1971:20:47;-1:-1:-1;;;;;1971:30:47;;1963:87;;;;-1:-1:-1;;;1963:87:47;;;;;;;:::i;:::-;3878:36:::1;3896:17;3878;:36::i;:::-;3924:52;3946:17;3965:4;3971;3924:21;:52::i;:::-;3761:222:::0;;:::o;3004:131::-;3082:7;2324:4;-1:-1:-1;;;;;2333:6:47;2316:23;;2308:92;;;;-1:-1:-1;;;2308:92:47;;7269:2:185;2308:92:47;;;7251:21:185;7308:2;7288:18;;;7281:30;7347:34;7327:18;;;7320:62;7418:26;7398:18;;;7391:54;7462:19;;2308:92:47;7067:420:185;2308:92:47;-1:-1:-1;;;;;;;;;;;;3004:131:47;:::o;2071:101:42:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;6724:59:181:-:0;1334:13:42;:11;:13::i;:::-;6768:8:181::1;:6;:8::i;5498:317::-:0;1482:19:48;:17;:19::i;:::-;5562:10:181::1;5553:20;::::0;;;:8:::1;:20;::::0;;;;:28;5549:105:::1;;5609:34;::::0;-1:-1:-1;;;5609:34:181;;5632:10:::1;5609:34;::::0;::::1;2555:51:185::0;2528:18;;5609:34:181::1;2409:203:185::0;5549:105:181::1;5699:33;796:3;5699:12;:33;:::i;:::-;5673:10;5664:20;::::0;;;:8:::1;:20;::::0;;;;;;:32:::1;;:68:::0;;;5747:61;5673:10;;5747:61:::1;::::0;::::1;::::0;425:25:185;;413:2;398:18;;279:177;5747:61:181::1;;;;;;;;5498:317::o:0;3043:443::-;3111:19:46;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:46;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:46;1476:19:50;:23;;;3219:66:46;;-1:-1:-1;3268:12:46;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:46;;7694:2:185;3157:201:46;;;7676:21:185;7733:2;7713:18;;;7706:30;7772:34;7752:18;;;7745:62;-1:-1:-1;;;7823:18:185;;;7816:44;7877:19;;3157:201:46;7492:410:185;3157:201:46;3368:12;:16;;-1:-1:-1;;3368:16:46;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:46;;;;;3394:65;3240:16:181::1;:14;:16::i;:::-;3291:24;:22;:24::i;:::-;3325:47;3344:27;3325:18;:47::i;:::-;3383:26;:56:::0;;-1:-1:-1;;;;;3383:56:181;;::::1;-1:-1:-1::0;;;;;;3383:56:181;;::::1;;::::0;;;3449:13:::1;:30:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;3479:99:46;;;;3529:5;3513:21;;-1:-1:-1;;3513:21:46;;;3553:14;;-1:-1:-1;8059:36:185;;3553:14:46;;8047:2:185;8032:18;3553:14:46;;;;;;;3479:99;3101:483;3043:443:181;;;:::o;3685:1807::-;2943:13;;-1:-1:-1;;;;;2943:13:181;2929:10;:27;2925:95;;2979:30;;-1:-1:-1;;;2979:30:181;;2998:10;2979:30;;;2555:51:185;2528:18;;2979:30:181;2409:203:185;2925:95:181;1482:19:48::1;:17;:19::i;:::-;4126:6:181::0;4173:10;4205:14;4201:71:::2;;4242:19;;-1:-1:-1::0;;;4242:19:181::2;;;;;;;;;;;4201:71;4286:18:::0;4282:84:::2;;4327:28;;-1:-1:-1::0;;;4327:28:181::2;;;;;;;;;;;4282:84;4392:13;4380:9;:25;4376:104;;;4428:41;::::0;-1:-1:-1;;;4428:41:181;;::::2;::::0;::::2;6032:25:185::0;;;6073:18;;;6066:34;;;6005:18;;4428:41:181::2;5858:248:185::0;4376:104:181::2;4508:13;4520:1;4508:9:::0;:13:::2;:::i;:::-;4495:27:::0;::::2;4494:34:::0;4490:102:::2;;4551:30;::::0;-1:-1:-1;;;4551:30:181;;::::2;::::0;::::2;425:25:185::0;;;398:18;;4551:30:181::2;279:177:185::0;4490:102:181::2;4606:16:::0;4602:69:::2;;4645:15;;-1:-1:-1::0;;;4645:15:181::2;;;;;;;;;;;4602:69;4716:16:::0;4685:27:::2;4699:13:::0;4685:11;:27:::2;:::i;:::-;:47;4681:206;;4801:16:::0;4835:27:::2;4849:13:::0;4835:11;:27:::2;:::i;:::-;4755:121;::::0;-1:-1:-1;;;4755:121:181;;::::2;::::0;::::2;6032:25:185::0;;;;6073:18;;;6066:34;6005:18;;4755:121:181::2;5858:248:185::0;4681:206:181::2;4897:143;4946:6;;4966:15;4995:10;;5019:11;4897:35;:143::i;:::-;5144:26;;;;;;;;;-1:-1:-1::0;;;;;5144:26:181::2;-1:-1:-1::0;;;;;5144:40:181::2;;5192:16;5223:15;5252:16;;5282:22;5144:170;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;5342:15;5330:41;5359:11;5330:41;;;;425:25:185::0;;413:2;398:18;;279:177;5330:41:181::2;;;;;;;;5390:13;::::0;-1:-1:-1;;;;;5390:13:181::2;5382:103;5459:16:::0;5428:27:::2;5442:13:::0;5428:11;:27:::2;:::i;:::-;5427:48;;;;:::i;:::-;5382:103;::::0;;::::2;::::0;;::::2;::::0;::::2;::::0;;;;;;::::2;;;;;;;;;;;;;::::0;::::2;;;;;;4096:1396;;3685:1807:::0;;;;;;;;;;:::o;2321:198:42:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:42;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:42;;9021:2:185;2401:73:42::1;::::0;::::1;9003:21:185::0;9060:2;9040:18;;;9033:30;9099:34;9079:18;;;9072:62;-1:-1:-1;;;9150:18:185;;;9143:36;9196:19;;2401:73:42::1;8819:402:185::0;2401:73:42::1;2484:28;2503:8;2484:18;:28::i;5821:244:181:-:0;1482:19:48;:17;:19::i;:::-;5883:10:181::1;5874:20;::::0;;;:8:::1;:20;::::0;;;;:28;5870:103:::1;;5930:32;::::0;-1:-1:-1;;;5930:32:181;;5951:10:::1;5930:32;::::0;::::1;2555:51:185::0;2528:18;;5930:32:181::1;2409:203:185::0;5870:103:181::1;5991:10;6017:1;5982:20:::0;;;:8:::1;:20;::::0;;;;;:32:::1;;:36:::0;;;6033:25;::::1;::::0;6017:1;6033:25:::1;5821:244::o:0;2010:106:48:-;1928:7;;;;2079:9;2071:38;;;;-1:-1:-1;;;2071:38:48;;9428:2:185;2071:38:48;;;9410:21:185;9467:2;9447:18;;;9440:30;-1:-1:-1;;;9486:18:185;;;9479:46;9542:18;;2071:38:48;9226:340:185;6858:171:181;1334:13:42;:11;:13::i;2938:974:44:-;951:66;3384:59;;;3380:526;;;3459:37;3478:17;3459:18;:37::i;:::-;2938:974;;;:::o;3380:526::-;3560:17;-1:-1:-1;;;;;3531:61:44;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3531:63:44;;;;;;;;-1:-1:-1;;3531:63:44;;;;;;;;;;;;:::i;:::-;;;3527:302;;3758:56;;-1:-1:-1;;;3758:56:44;;9962:2:185;3758:56:44;;;9944:21:185;10001:2;9981:18;;;9974:30;10040:34;10020:18;;;10013:62;-1:-1:-1;;;10091:18:185;;;10084:44;10145:19;;3758:56:44;9760:410:185;3527:302:44;-1:-1:-1;;;;;;;;;;;3644:28:44;;3636:82;;;;-1:-1:-1;;;3636:82:44;;10377:2:185;3636:82:44;;;10359:21:185;10416:2;10396:18;;;10389:30;10455:34;10435:18;;;10428:62;-1:-1:-1;;;10506:18:185;;;10499:39;10555:19;;3636:82:44;10175:405:185;3636:82:44;3595:138;3842:53;3860:17;3879:4;3885:9;3842:17;:53::i;1599:130:42:-;1513:6;;-1:-1:-1;;;;;1513:6:42;929:10:51;1662:23:42;1654:68;;;;-1:-1:-1;;;1654:68:42;;10787:2:185;1654:68:42;;;10769:21:185;;;10806:18;;;10799:30;10865:34;10845:18;;;10838:62;10917:18;;1654:68:42;10585:356:185;2676:117:48;1729:16;:14;:16::i;:::-;2734:7:::1;:15:::0;;-1:-1:-1;;2734:15:48::1;::::0;;2764:22:::1;929:10:51::0;2773:12:48::1;2764:22;::::0;-1:-1:-1;;;;;2573:32:185;;;2555:51;;2543:2;2528:18;2764:22:48::1;;;;;;;2676:117::o:0;2673:187:42:-;2765:6;;;-1:-1:-1;;;;;2781:17:42;;;-1:-1:-1;;;;;;2781:17:42;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;2429:115:48:-;1482:19;:17;:19::i;:::-;2488:7:::1;:14:::0;;-1:-1:-1;;2488:14:48::1;2498:4;2488:14;::::0;;2517:20:::1;2524:12;929:10:51::0;;850:96;1003:95:42;4910:13:46;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:46;;;;;;;:::i;:::-;1065:26:42::1;:24;:26::i;1042:67:47:-:0;4910:13:46;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:46;;;;;;;:::i;7035:1938:181:-;7246:23;7272:17;7288:1;7272:6;:17;:::i;:::-;7246:43;;7299:22;7338:15;7324:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7324:30:181;;7299:55;;7365:8;7514:315;7530:15;7526:1;:19;;;7514:315;;;7621:6;;7628:5;7632:1;7628;:5;:::i;:::-;7621:13;;;;;;;;;:::i;:::-;;;;;;;7636:6;;7647:1;7643;:5;;;;:::i;:::-;:9;;7651:1;7643:9;:::i;:::-;7636:17;;;;;;;;;:::i;:::-;;;;;;;7604:50;;;;;;;;12369:19:185;;;12413:2;12404:12;;12397:28;12450:2;12441:12;;12212:247;7604:50:181;;;;;;;;;;;;;7577:91;;;;;;7566:5;7572:1;7566:8;;;;;;;;;;:::i;:::-;;;;;;:102;;;;;7683:135;7735:6;;7742:1;7735:9;;;;;;;;;:::i;:::-;;;;;;;7762:10;;7773:1;7762:13;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;7793:11;7683:34;:135::i;:::-;7547:3;;;;:::i;:::-;;;;7514:315;;;7891:21;;;;-1:-1:-1;7884:195:181;;;7933:135;7985:6;;7992:1;7985:9;;;;;;;;;:::i;7933:135::-;7914:3;;;;:::i;:::-;;;;7884:195;;;8144:20;8163:1;8144:20;;:::i;:::-;;;8240:435;8247:20;;8240:435;;-1:-1:-1;8401:1:181;8392:179;8408:15;8404:1;:19;;;8392:179;;;8507:5;8513;8517:1;8513;:5;:::i;:::-;8507:12;;;;;;;;;;:::i;:::-;;;;;;;8521:5;8531:1;8527;:5;;;;:::i;:::-;:9;;8535:1;8527:9;:::i;:::-;8521:16;;;;;;;;;;:::i;:::-;;;;;;;8490:48;;;;;;;;12369:19:185;;;12413:2;12404:12;;12397:28;12450:2;12441:12;;12212:247;8490:48:181;;;;;;;;;;;;;8459:97;;;;;;8448:5;8454:1;8448:8;;;;;;;;;;:::i;:::-;;;;;;;;;;:108;8425:3;;;;:::i;:::-;;;;8392:179;;;8644:20;8663:1;8644:20;;:::i;:::-;;;8240:435;;;8706:1;8689:18;;8685:282;;;8740:15;8727:6;;8734:1;8727:9;;;;;;;:::i;:::-;;;;;;;:28;8723:119;;8800:15;8817:6;;8824:1;8817:9;;;;;;;:::i;:::-;;;;;;;8782:45;;-1:-1:-1;;;8782:45:181;;;;;;;;6032:25:185;;;6088:2;6073:18;;6066:34;6020:2;6005:18;;5858:248;8723:119:181;8685:282;;;8874:15;8862:5;8868:1;8862:8;;;;;;;;:::i;:::-;;;;;;;:27;8858:109;;8930:15;8947:5;8953:1;8947:8;;;;;;;;:::i;:::-;;;;;;;8912:44;;-1:-1:-1;;;8912:44:181;;;;;;;;6032:25:185;;;6088:2;6073:18;;6066:34;6020:2;6005:18;;5858:248;8858:109:181;7236:1737;;;7035:1938;;;;;;:::o;1805:281:44:-;-1:-1:-1;;;;;1476:19:50;;;1878:106:44;;;;-1:-1:-1;;;1878:106:44;;13461:2:185;1878:106:44;;;13443:21:185;13500:2;13480:18;;;13473:30;13539:34;13519:18;;;13512:62;-1:-1:-1;;;13590:18:185;;;13583:43;13643:19;;1878:106:44;13259:409:185;1878:106:44;-1:-1:-1;;;;;;;;;;;1994:85:44;;-1:-1:-1;;;;;;1994:85:44;-1:-1:-1;;;;;1994:85:44;;;;;;;;;;1805:281::o;2478:288::-;2616:29;2627:17;2616:10;:29::i;:::-;2673:1;2659:4;:11;:15;:28;;;;2678:9;2659:28;2655:105;;;2703:46;2725:17;2744:4;2703:21;:46::i;2188:106:48:-;1928:7;;;;2246:41;;;;-1:-1:-1;;;2246:41:48;;13875:2:185;2246:41:48;;;13857:21:185;13914:2;13894:18;;;13887:30;-1:-1:-1;;;13933:18:185;;;13926:50;13993:18;;2246:41:48;13673:344:185;1104:111:42;4910:13:46;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:46;;;;;;;:::i;:::-;1176:32:42::1;929:10:51::0;1176:18:42::1;:32::i;8979:1146:181:-:0;9171:11;9148:13;:20;;;:34;9144:120;;;9219:20;9205:48;;-1:-1:-1;;;9205:48:181;;9219:20;;;;9205:48;;;6032:25:185;6073:18;;;6066:34;;;6005:18;;9205:48:181;5858:248:185;9144:120:181;9411:20;9318:158;;9374:19;9318:158;;;14235:19:185;;;9374::181;;;14270:12:185;;;14263:28;9411:20:181;;;;14307:12:185;;;14300:28;9449:13:181;14344:12:185;;;14337:28;9274:18:181;;14381:13:185;;9318:158:181;;;-1:-1:-1;;9318:158:181;;;;;;;;;9295:191;;9318:158;9295:191;;;;;-1:-1:-1;9497:14:181;9514:43;9533:23;:13;;:23;:::i;:::-;9514:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9514:10:181;;:43;-1:-1:-1;;9514:18:181;:43;-1:-1:-1;9514:43:181:i;:::-;9497:60;-1:-1:-1;;;;;;9572:20:181;;9568:76;;9615:18;;-1:-1:-1;;;9615:18:181;;;;;;;;;;;9568:76;-1:-1:-1;;;;;9684:16:181;;9654:27;9684:16;;;:8;:16;;;;;;;;9715;;;;9684;;9735:19;;;9715:39;9711:128;;9790:16;;;;9777:51;;-1:-1:-1;;;9777:51:181;;;;;6032:25:185;;;;9808:19:181;;;;6073:18:185;;;6066:34;6005:18;;9777:51:181;5858:248:185;9711:128:181;9848:16;;;:18;;;:16;:18;;;:::i;:::-;;;;-1:-1:-1;;9881:18:181;;:32;-1:-1:-1;9877:198:181;;;10003:18;;9936:128;;-1:-1:-1;;;9936:128:181;;-1:-1:-1;;;;;15291:32:185;;9936:128:181;;;15273:51:185;15340:18;;;15333:34;;;;15383:18;;;15376:34;;;15246:18;;9936:128:181;15071:345:185;9877:198:181;10107:11;10085:10;:18;;;:33;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;8979:1146:181:o;2192:152:44:-;2258:37;2277:17;2258:18;:37::i;:::-;2310:27;;-1:-1:-1;;;;;2310:27:44;;;;;;;;2192:152;:::o;7088:455::-;7171:12;-1:-1:-1;;;;;1476:19:50;;;7195:88:44;;;;-1:-1:-1;;;7195:88:44;;15623:2:185;7195:88:44;;;15605:21:185;15662:2;15642:18;;;15635:30;15701:34;15681:18;;;15674:62;-1:-1:-1;;;15752:18:185;;;15745:36;15798:19;;7195:88:44;15421:402:185;7195:88:44;7354:12;7368:23;7395:6;-1:-1:-1;;;;;7395:19:44;7415:4;7395:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7353:67;;;;7437:99;7473:7;7482:10;7437:99;;;;;;;;;;;;;;;;;:35;:99::i;:::-;7430:106;7088:455;-1:-1:-1;;;;;7088:455:44:o;4402:227:77:-;4480:7;4500:17;4519:18;4541:27;4552:4;4558:9;4541:10;:27::i;:::-;4499:69;;;;4578:18;4590:5;4578:11;:18::i;:::-;-1:-1:-1;4613:9:77;4402:227;-1:-1:-1;;;4402:227:77:o;6622:742:50:-;6768:12;6796:7;6792:566;;;-1:-1:-1;6826:10:50;6819:17;;6792:566;6937:17;;:21;6933:415;;7181:10;7175:17;7241:15;7228:10;7224:2;7220:19;7213:44;6933:415;7320:12;7313:20;;-1:-1:-1;;;7313:20:50;;;;;;;;:::i;6933:415::-;6622:742;;;;;:::o;2243:1373:77:-;2324:7;2333:12;2554:9;:16;2574:2;2554:22;2550:1060;;;2890:4;2875:20;;2869:27;2939:4;2924:20;;2918:27;2996:4;2981:20;;2975:27;2592:9;2967:36;3037:25;3048:4;2967:36;2869:27;2918;3037:10;:25::i;:::-;3030:32;;;;;;;;;2550:1060;3083:9;:16;3103:2;3083:22;3079:531;;;3399:4;3384:20;;3378:27;3449:4;3434:20;;3428:27;3489:23;3500:4;3378:27;3428;3489:10;:23::i;:::-;3482:30;;;;;;;;3079:531;-1:-1:-1;3559:1:77;;-1:-1:-1;3563:35:77;3079:531;2243:1373;;;;;:::o;548:631::-;625:20;616:5;:29;;;;;;;;:::i;:::-;;612:561;;;548:631;:::o;612:561::-;721:29;712:5;:38;;;;;;;;:::i;:::-;;708:465;;;766:34;;-1:-1:-1;;;766:34:77;;17092:2:185;766:34:77;;;17074:21:185;17131:2;17111:18;;;17104:30;17170:26;17150:18;;;17143:54;17214:18;;766:34:77;16890:348:185;708:465:77;830:35;821:5;:44;;;;;;;;:::i;:::-;;817:356;;;881:41;;-1:-1:-1;;;881:41:77;;17445:2:185;881:41:77;;;17427:21:185;17484:2;17464:18;;;17457:30;17523:33;17503:18;;;17496:61;17574:18;;881:41:77;17243:355:185;817:356:77;952:30;943:5;:39;;;;;;;;:::i;:::-;;939:234;;;998:44;;-1:-1:-1;;;998:44:77;;17805:2:185;998:44:77;;;17787:21:185;17844:2;17824:18;;;17817:30;17883:34;17863:18;;;17856:62;-1:-1:-1;;;17934:18:185;;;17927:32;17976:19;;998:44:77;17603:398:185;939:234:77;1072:30;1063:5;:39;;;;;;;;:::i;:::-;;1059:114;;;1118:44;;-1:-1:-1;;;1118:44:77;;18208:2:185;1118:44:77;;;18190:21:185;18247:2;18227:18;;;18220:30;18286:34;18266:18;;;18259:62;-1:-1:-1;;;18337:18:185;;;18330:32;18379:19;;1118:44:77;18006:398:185;5810:1603:77;5936:7;;6860:66;6847:79;;6843:161;;;-1:-1:-1;6958:1:77;;-1:-1:-1;6962:30:77;6942:51;;6843:161;7017:1;:7;;7022:2;7017:7;;:18;;;;;7028:1;:7;;7033:2;7028:7;;7017:18;7013:100;;;-1:-1:-1;7067:1:77;;-1:-1:-1;7071:30:77;7051:51;;7013:100;7224:24;;;7207:14;7224:24;;;;;;;;;18636:25:185;;;18709:4;18697:17;;18677:18;;;18670:45;;;;18731:18;;;18724:34;;;18774:18;;;18767:34;;;7224:24:77;;18608:19:185;;7224:24:77;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7224:24:77;;-1:-1:-1;;7224:24:77;;;-1:-1:-1;;;;;;;7262:20:77;;7258:101;;7314:1;7318:29;7298:50;;;;;;;7258:101;7377:6;-1:-1:-1;7385:20:77;;-1:-1:-1;5810:1603:77;;;;;;;;:::o;4883:336::-;4993:7;;-1:-1:-1;;;;;5038:80:77;;4993:7;5144:25;5160:3;5145:18;;;5167:2;5144:25;:::i;:::-;5128:42;;5187:25;5198:4;5204:1;5207;5210;5187:10;:25::i;:::-;5180:32;;;;;;4883:336;;;;;;:::o;14:127:185:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:128;186:3;217:1;213:6;210:1;207:13;204:39;;;223:18;;:::i;:::-;-1:-1:-1;259:9:185;;146:128::o;461:131::-;-1:-1:-1;;;;;536:31:185;;526:42;;516:70;;582:1;579;572:12;597:247;656:6;709:2;697:9;688:7;684:23;680:32;677:52;;;725:1;722;715:12;677:52;764:9;751:23;783:31;808:5;783:31;:::i;849:180::-;908:6;961:2;949:9;940:7;936:23;932:32;929:52;;;977:1;974;967:12;929:52;-1:-1:-1;1000:23:185;;849:180;-1:-1:-1;849:180:185:o;1034:127::-;1095:10;1090:3;1086:20;1083:1;1076:31;1126:4;1123:1;1116:15;1150:4;1147:1;1140:15;1166:1056;1243:6;1251;1304:2;1292:9;1283:7;1279:23;1275:32;1272:52;;;1320:1;1317;1310:12;1272:52;1359:9;1346:23;1378:31;1403:5;1378:31;:::i;:::-;1428:5;-1:-1:-1;1484:2:185;1469:18;;1456:32;1507:18;1537:14;;;1534:34;;;1564:1;1561;1554:12;1534:34;1602:6;1591:9;1587:22;1577:32;;1647:7;1640:4;1636:2;1632:13;1628:27;1618:55;;1669:1;1666;1659:12;1618:55;1705:2;1692:16;1727:2;1723;1720:10;1717:36;;;1733:18;;:::i;:::-;1808:2;1802:9;1776:2;1862:13;;-1:-1:-1;;1858:22:185;;;1882:2;1854:31;1850:40;1838:53;;;1906:18;;;1926:22;;;1903:46;1900:72;;;1952:18;;:::i;:::-;1992:10;1988:2;1981:22;2027:2;2019:6;2012:18;2067:7;2062:2;2057;2053;2049:11;2045:20;2042:33;2039:53;;;2088:1;2085;2078:12;2039:53;2144:2;2139;2135;2131:11;2126:2;2118:6;2114:15;2101:46;2189:1;2184:2;2179;2171:6;2167:15;2163:24;2156:35;2210:6;2200:16;;;;;;;1166:1056;;;;;:::o;3054:566::-;3168:6;3176;3184;3237:2;3225:9;3216:7;3212:23;3208:32;3205:52;;;3253:1;3250;3243:12;3205:52;3292:9;3279:23;3311:31;3336:5;3311:31;:::i;:::-;3361:5;-1:-1:-1;3418:2:185;3403:18;;3390:32;3431:33;3390:32;3431:33;:::i;:::-;3483:7;-1:-1:-1;3542:2:185;3527:18;;3514:32;3555:33;3514:32;3555:33;:::i;:::-;3607:7;3597:17;;;3054:566;;;;;:::o;3949:367::-;4012:8;4022:6;4076:3;4069:4;4061:6;4057:17;4053:27;4043:55;;4094:1;4091;4084:12;4043:55;-1:-1:-1;4117:20:185;;4160:18;4149:30;;4146:50;;;4192:1;4189;4182:12;4146:50;4229:4;4221:6;4217:17;4205:29;;4289:3;4282:4;4272:6;4269:1;4265:14;4257:6;4253:27;4249:38;4246:47;4243:67;;;4306:1;4303;4296:12;4321:1532;4534:6;4542;4550;4558;4566;4574;4582;4590;4598;4606;4659:3;4647:9;4638:7;4634:23;4630:33;4627:53;;;4676:1;4673;4666:12;4627:53;4712:9;4699:23;4689:33;;4773:2;4762:9;4758:18;4745:32;4796:18;4837:2;4829:6;4826:14;4823:34;;;4853:1;4850;4843:12;4823:34;4891:6;4880:9;4876:22;4866:32;;4936:7;4929:4;4925:2;4921:13;4917:27;4907:55;;4958:1;4955;4948:12;4907:55;4998:2;4985:16;5024:2;5016:6;5013:14;5010:34;;;5040:1;5037;5030:12;5010:34;5085:7;5080:2;5071:6;5067:2;5063:15;5059:24;5056:37;5053:57;;;5106:1;5103;5096:12;5053:57;5137:2;5133;5129:11;5119:21;;5159:6;5149:16;;;5218:2;5207:9;5203:18;5190:32;5174:48;;5247:2;5237:8;5234:16;5231:36;;;5263:1;5260;5253:12;5231:36;5302:72;5366:7;5355:8;5344:9;5340:24;5302:72;:::i;:::-;5393:8;;-1:-1:-1;5276:98:185;-1:-1:-1;5481:2:185;5466:18;;5453:32;;-1:-1:-1;5497:16:185;;;5494:36;;;5526:1;5523;5516:12;5494:36;;5565:72;5629:7;5618:8;5607:9;5603:24;5565:72;:::i;:::-;4321:1532;;;;-1:-1:-1;4321:1532:185;;;;;;5539:98;;5738:3;5723:19;;5710:33;;5790:3;5775:19;;5762:33;;-1:-1:-1;5842:3:185;5827:19;;;5814:33;;-1:-1:-1;4321:1532:185;-1:-1:-1;;;;4321:1532:185:o;6111:125::-;6151:4;6179:1;6176;6173:8;6170:34;;;6184:18;;:::i;:::-;-1:-1:-1;6221:9:185;;6111:125::o;6241:408::-;6443:2;6425:21;;;6482:2;6462:18;;;6455:30;6521:34;6516:2;6501:18;;6494:62;-1:-1:-1;;;6587:2:185;6572:18;;6565:42;6639:3;6624:19;;6241:408::o;6654:::-;6856:2;6838:21;;;6895:2;6875:18;;;6868:30;6934:34;6929:2;6914:18;;6907:62;-1:-1:-1;;;7000:2:185;6985:18;;6978:42;7052:3;7037:19;;6654:408::o;8106:168::-;8146:7;8212:1;8208;8204:6;8200:14;8197:1;8194:21;8189:1;8182:9;8175:17;8171:45;8168:71;;;8219:18;;:::i;:::-;-1:-1:-1;8259:9:185;;8106:168::o;8279:535::-;8494:6;8483:9;8476:25;8537:2;8532;8521:9;8517:18;8510:30;8576:6;8571:2;8560:9;8556:18;8549:34;8634:6;8626;8620:3;8609:9;8605:19;8592:49;8691:1;8685:3;8676:6;8665:9;8661:22;8657:32;8650:43;8457:4;8761:3;8754:2;8750:7;8745:2;8737:6;8733:15;8729:29;8718:9;8714:45;8710:55;8702:63;;8801:6;8796:2;8785:9;8781:18;8774:34;8279:535;;;;;;;:::o;9571:184::-;9641:6;9694:2;9682:9;9673:7;9669:23;9665:32;9662:52;;;9710:1;9707;9700:12;9662:52;-1:-1:-1;9733:16:185;;9571:184;-1:-1:-1;9571:184:185:o;10946:407::-;11148:2;11130:21;;;11187:2;11167:18;;;11160:30;11226:34;11221:2;11206:18;;11199:62;-1:-1:-1;;;11292:2:185;11277:18;;11270:41;11343:3;11328:19;;10946:407::o;11358:217::-;11398:1;11424;11414:132;;11468:10;11463:3;11459:20;11456:1;11449:31;11503:4;11500:1;11493:15;11531:4;11528:1;11521:15;11414:132;-1:-1:-1;11560:9:185;;11358:217::o;11580:262::-;11619:7;11651:10;11688:2;11685:1;11681:10;11718:2;11715:1;11711:10;11774:3;11770:2;11766:12;11761:3;11758:21;11751:3;11744:11;11737:19;11733:47;11730:73;;;11783:18;;:::i;:::-;11823:13;;11580:262;-1:-1:-1;;;;11580:262:185:o;11847:127::-;11908:10;11903:3;11899:20;11896:1;11889:31;11939:4;11936:1;11929:15;11963:4;11960:1;11953:15;11979:228;12018:3;12046:10;12083:2;12080:1;12076:10;12113:2;12110:1;12106:10;12144:3;12140:2;12136:12;12131:3;12128:21;12125:47;;;12152:18;;:::i;:::-;12188:13;;11979:228;-1:-1:-1;;;;11979:228:185:o;12464:331::-;12564:4;12622:11;12609:25;12716:2;12712:7;12701:8;12685:14;12681:29;12677:43;12657:18;12653:68;12643:96;;12735:1;12732;12725:12;12643:96;12756:33;;;;;12464:331;-1:-1:-1;;12464:331:185:o;12800:201::-;12838:3;12866:10;12911:2;12904:5;12900:14;12938:2;12929:7;12926:15;12923:41;;;12944:18;;:::i;:::-;12993:1;12980:15;;12800:201;-1:-1:-1;;;12800:201:185:o;14405:521::-;14482:4;14488:6;14548:11;14535:25;14642:2;14638:7;14627:8;14611:14;14607:29;14603:43;14583:18;14579:68;14569:96;;14661:1;14658;14651:12;14569:96;14688:33;;14740:20;;;-1:-1:-1;14783:18:185;14772:30;;14769:50;;;14815:1;14812;14805:12;14769:50;14848:4;14836:17;;-1:-1:-1;14879:14:185;14875:27;;;14865:38;;14862:58;;;14916:1;14913;14906:12;14931:135;14970:3;-1:-1:-1;;14991:17:185;;14988:43;;;15011:18;;:::i;:::-;-1:-1:-1;15058:1:185;15047:13;;14931:135::o;15828:258::-;15900:1;15910:113;15924:6;15921:1;15918:13;15910:113;;;16000:11;;;15994:18;15981:11;;;15974:39;15946:2;15939:10;15910:113;;;16041:6;16038:1;16035:13;16032:48;;;-1:-1:-1;;16076:1:185;16058:16;;16051:27;15828:258::o;16091:274::-;16220:3;16258:6;16252:13;16274:53;16320:6;16315:3;16308:4;16300:6;16296:17;16274:53;:::i;16370:383::-;16519:2;16508:9;16501:21;16482:4;16551:6;16545:13;16594:6;16589:2;16578:9;16574:18;16567:34;16610:66;16669:6;16664:2;16653:9;16649:18;16644:2;16636:6;16632:15;16610:66;:::i;:::-;16737:2;16716:15;-1:-1:-1;;16712:29:185;16697:45;;;;16744:2;16693:54;;16370:383;-1:-1:-1;;16370:383:185:o;16758:127::-;16819:10;16814:3;16810:20;16807:1;16800:31;16850:4;16847:1;16840:15;16874:4;16871:1;16864:15","linkReferences":{},"immutableReferences":{"15357":[{"start":1486,"length":32},{"start":1550,"length":32},{"start":1728,"length":32},{"start":1792,"length":32},{"start":1939,"length":32}]}},"methodIdentifiers":{"UNLOCK_BLOCK_COUNT()":"5a3f631a","alignedLayerServiceManager()":"953ef807","batcherWallet()":"58b96e27","createNewTask(bytes32,string,bytes32[],(bytes,uint256,uint256)[],uint256,uint256,uint256)":"df5ffbc6","initialize(address,address,address)":"c0c53b8b","lock()":"f83d08ba","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","proxiableUUID()":"52d1902d","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","unlock()":"a69df4b5","unpause()":"3f4ba83a","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286","userData(address)":"c8910913","user_balances(address)":"2df4e21e","user_nonces(address)":"17d89c4e","user_unlock_block(address)":"4d5431ea","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"unlockBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentBlock\",\"type\":\"uint256\"}],\"name\":\"FundsLocked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"}],\"name\":\"InsufficientFeeForAggregator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualFee\",\"type\":\"uint256\"}],\"name\":\"InvalidMaxFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"InvalidMerkleRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InvalidNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"leavesQty\",\"type\":\"uint256\"}],\"name\":\"LeavesNotPowerOfTwo\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFeePerProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoLeavesSubmitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoProofSubmitterSignatures\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"leavesQty\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signaturesQty\",\"type\":\"uint256\"}],\"name\":\"NotEnoughLeaves\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"OnlyBatcherAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PayerInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"SignerInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"UserHasNoFundsToLock\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"UserHasNoFundsToUnlock\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"BalanceLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockBlock\",\"type\":\"uint256\"}],\"name\":\"BalanceUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"feePerProof\",\"type\":\"uint256\"}],\"name\":\"TaskCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UNLOCK_BLOCK_COUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"alignedLayerServiceManager\",\"outputs\":[{\"internalType\":\"contract IAlignedLayerServiceManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batcherWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"batchDataPointer\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"leaves\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFee\",\"type\":\"uint256\"}],\"internalType\":\"struct BatcherPaymentService.SignatureData[]\",\"name\":\"signatures\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"feeForAggregator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"feePerProof\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeeAllowedToRespond\",\"type\":\"uint256\"}],\"name\":\"createNewTask\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IAlignedLayerServiceManager\",\"name\":\"_alignedLayerServiceManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_batcherPaymentServiceOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_batcherWallet\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userData\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unlockBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"user_balances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"user_nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"user_unlock_block\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate that the this implementation remains valid after an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/BatcherPaymentService.sol\":\"BatcherPaymentService\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":@openzeppelin-upgrades/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":@openzeppelin/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/\"]},\"sources\":{\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2\",\"dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x6e36e9b4b71de699c2f3f0d4e4d1aa0b35da99a26e8d5b91ef09ba234b4ef270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abfa467c53a0d60b4d09bf04aa952b1d1d44e5766fcc053aace078d7859b8419\",\"dweb:/ipfs/QmebVTZpyNxYfKYTuLMywzEJTdc1Ca8ME4xm3kR9gQgToG\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol\":{\"keccak256\":\"0x40c636b4572ff5f1dc50cf22097e93c0723ee14eff87e99ac2b02636eeca1250\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9c7d1f5e15633ab912b74c2f57e24559e66b03232300d4b27ff0f25bc452ecad\",\"dweb:/ipfs/QmYTJkc1cntYkKQ1Tu11nBcJLakiy93Tjytc4XHELo4GmR\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3\",\"dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x84ac2d2f343df1e683da7a12bbcf70db542a7a7a0cea90a5d70fcb5e5d035481\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73ae8e0c6f975052973265113d762629002ce33987b1933c2a378667e2816f2f\",\"dweb:/ipfs/QmQAootkVfoe4PLaYbT4Xob2dJRm3bZfbCffEHRbCYXNPF\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"src/core/BatcherPaymentService.sol\":{\"keccak256\":\"0xfd0ea8aa8e6cc10d709eb182601b70031952646dd504cbcfc06344d91e9bedc7\",\"urls\":[\"bzz-raw://3083840d83440dfe44c95d6919620cc40d6c45bbbe5a62e7f80a72330ab41220\",\"dweb:/ipfs/QmbTYRNc4Kq7TmTiDFgcHcAitrHXVWrz59frFKBLghboFy\"]},\"src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0x4b35d9ce7c538d549753422a94e79d2a586cbb379f5953e3c3eedccfdcbf4d88\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://49f0d61126ba3557badcdb8784c337c8ad896ec77978b19efa309a2eefdc44b6\",\"dweb:/ipfs/QmVXEsN7XWuVb7kzsxEDrAcExKHQ1TVPn6Qz8KHUJGSevP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"unlockBlock","type":"uint256"},{"internalType":"uint256","name":"currentBlock","type":"uint256"}],"type":"error","name":"FundsLocked"},{"inputs":[{"internalType":"uint256","name":"required","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"}],"type":"error","name":"InsufficientFeeForAggregator"},{"inputs":[{"internalType":"uint256","name":"maxFee","type":"uint256"},{"internalType":"uint256","name":"actualFee","type":"uint256"}],"type":"error","name":"InvalidMaxFee"},{"inputs":[{"internalType":"bytes32","name":"expected","type":"bytes32"},{"internalType":"bytes32","name":"actual","type":"bytes32"}],"type":"error","name":"InvalidMerkleRoot"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"InvalidNonce"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[{"internalType":"uint256","name":"leavesQty","type":"uint256"}],"type":"error","name":"LeavesNotPowerOfTwo"},{"inputs":[],"type":"error","name":"NoFeePerProof"},{"inputs":[],"type":"error","name":"NoLeavesSubmitted"},{"inputs":[],"type":"error","name":"NoProofSubmitterSignatures"},{"inputs":[{"internalType":"uint256","name":"leavesQty","type":"uint256"},{"internalType":"uint256","name":"signaturesQty","type":"uint256"}],"type":"error","name":"NotEnoughLeaves"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"OnlyBatcherAllowed"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"PayerInsufficientBalance"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"type":"error","name":"SignerInsufficientBalance"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"type":"error","name":"UserHasNoFundsToLock"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"type":"error","name":"UserHasNoFundsToUnlock"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true}],"type":"event","name":"BalanceLocked","anonymous":false},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"uint256","name":"unlockBlock","type":"uint256","indexed":false}],"type":"event","name":"BalanceUnlocked","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"FundsWithdrawn","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"PaymentReceived","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32","indexed":true},{"internalType":"uint256","name":"feePerProof","type":"uint256","indexed":false}],"type":"event","name":"TaskCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UNLOCK_BLOCK_COUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"alignedLayerServiceManager","outputs":[{"internalType":"contract IAlignedLayerServiceManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"batcherWallet","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"string","name":"batchDataPointer","type":"string"},{"internalType":"bytes32[]","name":"leaves","type":"bytes32[]"},{"internalType":"struct BatcherPaymentService.SignatureData[]","name":"signatures","type":"tuple[]","components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"maxFee","type":"uint256"}]},{"internalType":"uint256","name":"feeForAggregator","type":"uint256"},{"internalType":"uint256","name":"feePerProof","type":"uint256"},{"internalType":"uint256","name":"maxFeeAllowedToRespond","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createNewTask"},{"inputs":[{"internalType":"contract IAlignedLayerServiceManager","name":"_alignedLayerServiceManager","type":"address"},{"internalType":"address","name":"_batcherPaymentServiceOwner","type":"address"},{"internalType":"address","name":"_batcherWallet","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"lock"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unlock"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeTo"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"userData","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"unlockBlock","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"user_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"user_nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"user_unlock_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"proxiableUUID()":{"details":"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate that the this implementation remains valid after an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeTo(address)":{"details":"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"upgradeToAndCall(address,bytes)":{"details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","@openzeppelin-upgrades/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","@openzeppelin/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/","ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/","eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/","openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/BatcherPaymentService.sol":"BatcherPaymentService"},"evmVersion":"london","libraries":{}},"sources":{"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol":{"keccak256":"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f","urls":["bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053","dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol":{"keccak256":"0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823","urls":["bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2","dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol":{"keccak256":"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908","urls":["bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1","dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x6e36e9b4b71de699c2f3f0d4e4d1aa0b35da99a26e8d5b91ef09ba234b4ef270","urls":["bzz-raw://abfa467c53a0d60b4d09bf04aa952b1d1d44e5766fcc053aace078d7859b8419","dweb:/ipfs/QmebVTZpyNxYfKYTuLMywzEJTdc1Ca8ME4xm3kR9gQgToG"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol":{"keccak256":"0x40c636b4572ff5f1dc50cf22097e93c0723ee14eff87e99ac2b02636eeca1250","urls":["bzz-raw://9c7d1f5e15633ab912b74c2f57e24559e66b03232300d4b27ff0f25bc452ecad","dweb:/ipfs/QmYTJkc1cntYkKQ1Tu11nBcJLakiy93Tjytc4XHELo4GmR"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol":{"keccak256":"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a","urls":["bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3","dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x84ac2d2f343df1e683da7a12bbcf70db542a7a7a0cea90a5d70fcb5e5d035481","urls":["bzz-raw://73ae8e0c6f975052973265113d762629002ce33987b1933c2a378667e2816f2f","dweb:/ipfs/QmQAootkVfoe4PLaYbT4Xob2dJRm3bZfbCffEHRbCYXNPF"],"license":"MIT"},"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"src/core/BatcherPaymentService.sol":{"keccak256":"0xfd0ea8aa8e6cc10d709eb182601b70031952646dd504cbcfc06344d91e9bedc7","urls":["bzz-raw://3083840d83440dfe44c95d6919620cc40d6c45bbbe5a62e7f80a72330ab41220","dweb:/ipfs/QmbTYRNc4Kq7TmTiDFgcHcAitrHXVWrz59frFKBLghboFy"],"license":null},"src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0x4b35d9ce7c538d549753422a94e79d2a586cbb379f5953e3c3eedccfdcbf4d88","urls":["bzz-raw://49f0d61126ba3557badcdb8784c337c8ad896ec77978b19efa309a2eefdc44b6","dweb:/ipfs/QmVXEsN7XWuVb7kzsxEDrAcExKHQ1TVPn6Qz8KHUJGSevP"],"license":"UNLICENSED"}},"version":1},"id":181} \ No newline at end of file +{ + "abi": [ + { "type": "constructor", "inputs": [], "stateMutability": "nonpayable" }, + { "type": "receive", "stateMutability": "payable" }, + { + "type": "function", + "name": "UNLOCK_BLOCK_TIME", + "inputs": [], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "alignedLayerServiceManager", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IAlignedLayerServiceManager" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "batcherWallet", + "inputs": [], + "outputs": [{ "name": "", "type": "address", "internalType": "address" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "createNewTask", + "inputs": [ + { + "name": "batchMerkleRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "batchDataPointer", + "type": "string", + "internalType": "string" + }, + { + "name": "proofSubmitters", + "type": "address[]", + "internalType": "address[]" + }, + { + "name": "feeForAggregator", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "feePerProof", "type": "uint256", "internalType": "uint256" }, + { + "name": "respondToTaskFeeLimit", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_alignedLayerServiceManager", + "type": "address", + "internalType": "contract IAlignedLayerServiceManager" + }, + { + "name": "_batcherPaymentServiceOwner", + "type": "address", + "internalType": "address" + }, + { + "name": "_batcherWallet", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "lock", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [{ "name": "", "type": "address", "internalType": "address" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "pause", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxiableUUID", + "inputs": [], + "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { "name": "newOwner", "type": "address", "internalType": "address" } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "unlock", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "unpause", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "upgradeTo", + "inputs": [ + { + "name": "newImplementation", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "upgradeToAndCall", + "inputs": [ + { + "name": "newImplementation", + "type": "address", + "internalType": "address" + }, + { "name": "data", "type": "bytes", "internalType": "bytes" } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "userData", + "inputs": [{ "name": "", "type": "address", "internalType": "address" }], + "outputs": [ + { "name": "balance", "type": "uint256", "internalType": "uint256" }, + { + "name": "unlockBlockTime", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "user_balances", + "inputs": [ + { "name": "account", "type": "address", "internalType": "address" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "user_nonces", + "inputs": [ + { "name": "account", "type": "address", "internalType": "address" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "user_unlock_block", + "inputs": [ + { "name": "account", "type": "address", "internalType": "address" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [ + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "AdminChanged", + "inputs": [ + { + "name": "previousAdmin", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "newAdmin", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "BalanceLocked", + "inputs": [ + { + "name": "user", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "BalanceUnlocked", + "inputs": [ + { + "name": "user", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "unlockBlockTime", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "BeaconUpgraded", + "inputs": [ + { + "name": "beacon", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "FundsWithdrawn", + "inputs": [ + { + "name": "recipient", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Paused", + "inputs": [ + { + "name": "account", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "PaymentReceived", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "TaskCreated", + "inputs": [ + { + "name": "batchMerkleRoot", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "feePerProof", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Unpaused", + "inputs": [ + { + "name": "account", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Upgraded", + "inputs": [ + { + "name": "implementation", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "FundsLocked", + "inputs": [ + { + "name": "unlockBlockTime", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "currentBlockTime", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "InsufficientFeeForAggregator", + "inputs": [ + { "name": "required", "type": "uint256", "internalType": "uint256" }, + { "name": "available", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "type": "error", + "name": "InvalidAddress", + "inputs": [ + { "name": "param", "type": "string", "internalType": "string" } + ] + }, + { "type": "error", "name": "NoFeePerProof", "inputs": [] }, + { "type": "error", "name": "NoProofSubmitters", "inputs": [] }, + { + "type": "error", + "name": "OnlyBatcherAllowed", + "inputs": [ + { "name": "caller", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "PayerInsufficientBalance", + "inputs": [ + { "name": "balance", "type": "uint256", "internalType": "uint256" }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "type": "error", + "name": "SubmissionInsufficientBalance", + "inputs": [ + { "name": "sender", "type": "address", "internalType": "address" }, + { "name": "balance", "type": "uint256", "internalType": "uint256" }, + { "name": "required", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "type": "error", + "name": "UserHasNoFundsToLock", + "inputs": [ + { "name": "user", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "UserHasNoFundsToUnlock", + "inputs": [ + { "name": "user", "type": "address", "internalType": "address" } + ] + } + ], + "bytecode": { + "object": "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100e2565b600054610100900460ff161561008e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e0576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051611a82610119600039600081816105e801528181610628015281816106d90152818161071901526107ac0152611a826000f3fe60806040526004361061012e5760003560e01c8063715018a6116100ab578063a69df4b51161006f578063a69df4b5146103c0578063a7d31809146103d5578063c0c53b8b146103f5578063c891091314610415578063f2fde38b1461046c578063f83d08ba1461048c57600080fd5b8063715018a61461034257806373e289d0146103575780638456cb591461036d5780638da5cb5b14610382578063953ef807146103a057600080fd5b80634d5431ea116100f25780634d5431ea146102865780634f1ef286146102bf57806352d1902d146102d257806358b96e27146102e75780635c975abb1461031f57600080fd5b806317d89c4e146101ad5780632df4e21e146101f95780632e1a7d4d1461022f5780633659cfe6146102515780633f4ba83a1461027157600080fd5b366101a85733600090815260fd60205260408120805434929061015290849061154c565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709061019e9034815260200190565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101e66101c8366004611574565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561020557600080fd5b506101e6610214366004611574565b6001600160a01b0316600090815260fd602052604090205490565b34801561023b57600080fd5b5061024f61024a366004611591565b6104a1565b005b34801561025d57600080fd5b5061024f61026c366004611574565b6105de565b34801561027d57600080fd5b5061024f6106bd565b34801561029257600080fd5b506101e66102a1366004611574565b6001600160a01b0316600090815260fd602052604090206001015490565b61024f6102cd3660046115c0565b6106cf565b3480156102de57600080fd5b506101e661079f565b3480156102f357600080fd5b5060fc54610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b34801561032b57600080fd5b5060655460ff1660405190151581526020016101f0565b34801561034e57600080fd5b5061024f610852565b34801561036357600080fd5b506101e6610e1081565b34801561037957600080fd5b5061024f610864565b34801561038e57600080fd5b506033546001600160a01b0316610307565b3480156103ac57600080fd5b5060fb54610307906001600160a01b031681565b3480156103cc57600080fd5b5061024f610874565b3480156103e157600080fd5b5061024f6103f03660046116d0565b61090b565b34801561040157600080fd5b5061024f61041036600461178f565b610b9f565b34801561042157600080fd5b50610451610430366004611574565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f0565b34801561047857600080fd5b5061024f610487366004611574565b610de9565b34801561049857600080fd5b5061024f610e5f565b6104a9610ed5565b33600090815260fd6020526040902080548211156104ec5780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105005750428160010154115b1561052d576001810154604051635f6e272d60e11b815260048101919091524260248201526044016104e3565b8181600001600082825461054191906117da565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f193505050501580156105a4573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106265760405162461bcd60e51b81526004016104e3906117ed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066f600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146106955760405162461bcd60e51b81526004016104e390611839565b61069e81610f1b565b604080516000808252602082019092526106ba91839190610f23565b50565b6106c5611093565b6106cd6110ed565b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107175760405162461bcd60e51b81526004016104e3906117ed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610760600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146107865760405162461bcd60e51b81526004016104e390611839565b61078f82610f1b565b61079b82826001610f23565b5050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461083f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e3565b50600080516020611a0683398151915290565b61085a611093565b6106cd600061113f565b61086c611093565b6106cd611191565b61087c610ed5565b33600090815260fd602052604081205490036108ad5760405163b38340cf60e01b81523360048201526024016104e3565b6108b9610e104261154c565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed8439161090191815260200190565b60405180910390a2565b60fc546001600160a01b03163314610938576040516302a5785160e31b81523360048201526024016104e3565b610940610ed5565b83600081900361096357604051630c43ac2960e41b815260040160405180910390fd5b82600003610984576040516351d432c560e11b815260040160405180910390fd5b8361098f8285611885565b116109c1578361099f8285611885565b604051637899ec7160e01b8152600481019290925260248201526044016104e3565b60005b818163ffffffff161015610aa257600087878363ffffffff168181106109ec576109ec61189c565b9050602002016020810190610a019190611574565b6001600160a01b038116600090815260fd60205260409020805491925090861115610a5b578054604051634f779ceb60e01b81526001600160a01b03841660048201526024810191909152604481018790526064016104e3565b600281018054906000610a6d836118b2565b919050555085816000016000828254610a8691906117da565b9250508190555050508080610a9a906118cb565b9150506109c4565b5060fb5460405163d66eaabd60e01b81526001600160a01b039091169063d66eaabd908690610adb908d908d908d9089906004016118ee565b6000604051808303818588803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b5050505050887f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375884604051610b3f91815260200190565b60405180910390a260fc546001600160a01b03166108fc85610b618487611885565b610b6b91906117da565b6040518115909202916000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015610bbf5750600054600160ff909116105b80610bd95750303b158015610bd9575060005460ff166001145b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e3565b6000805460ff191660011790558015610c5f576000805461ff0019166101001790555b6001600160a01b038416610cae57604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b60448201526064016104e3565b6001600160a01b038316610d0557604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e657200000000000060448201526064016104e3565b6001600160a01b038216610d4c57604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b60448201526064016104e3565b610d546111ce565b610d5c6111fd565b610d64611224565b610d6d8361113f565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610de3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610df1611093565b6001600160a01b038116610e565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6106ba8161113f565b610e67610ed5565b33600090815260fd60205260408120549003610e985760405163366095e160e11b81523360048201526024016104e3565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106cd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e3565b6106ba611093565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5b57610f5683611253565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb5575060408051601f3d908101601f19168201909252610fb29181019061192e565b60015b6110185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e3565b600080516020611a0683398151915281146110875760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e3565b50610f568383836112ef565b6033546001600160a01b031633146106cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e3565b6110f5611314565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611199610ed5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111223390565b600054610100900460ff166111f55760405162461bcd60e51b81526004016104e390611947565b6106cd61135d565b600054610100900460ff166106cd5760405162461bcd60e51b81526004016104e390611947565b600054610100900460ff1661124b5760405162461bcd60e51b81526004016104e390611947565b6106cd61138d565b6001600160a01b0381163b6112c05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e3565b600080516020611a0683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6112f8836113c0565b6000825111806113055750805b15610f5657610de38383611400565b60655460ff166106cd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e3565b600054610100900460ff166113845760405162461bcd60e51b81526004016104e390611947565b6106cd3361113f565b600054610100900460ff166113b45760405162461bcd60e51b81526004016104e390611947565b6065805460ff19169055565b6113c981611253565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6114685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104e3565b600080846001600160a01b03168460405161148391906119b6565b600060405180830381855af49150503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50915091506114eb8282604051806060016040528060278152602001611a26602791396114f6565b925050505b92915050565b6060831561150557508161152f565b8251156115155782518084602001fd5b8160405162461bcd60e51b81526004016104e391906119d2565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156114f0576114f0611536565b6001600160a01b03811681146106ba57600080fd5b60006020828403121561158657600080fd5b813561152f8161155f565b6000602082840312156115a357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115d357600080fd5b82356115de8161155f565b9150602083013567ffffffffffffffff808211156115fb57600080fd5b818501915085601f83011261160f57600080fd5b813581811115611621576116216115aa565b604051601f8201601f19908116603f01168101908382118183101715611649576116496115aa565b8160405282815288602084870101111561166257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f84011261169657600080fd5b50813567ffffffffffffffff8111156116ae57600080fd5b6020830191508360208260051b85010111156116c957600080fd5b9250929050565b60008060008060008060008060c0898b0312156116ec57600080fd5b88359750602089013567ffffffffffffffff8082111561170b57600080fd5b818b0191508b601f83011261171f57600080fd5b81358181111561172e57600080fd5b8c602082850101111561174057600080fd5b6020830199508098505060408b013591508082111561175e57600080fd5b5061176b8b828c01611684565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b6000806000606084860312156117a457600080fd5b83356117af8161155f565b925060208401356117bf8161155f565b915060408401356117cf8161155f565b809150509250925092565b818103818111156114f0576114f0611536565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820281158282048414176114f0576114f0611536565b634e487b7160e01b600052603260045260246000fd5b6000600182016118c4576118c4611536565b5060010190565b600063ffffffff8083168181036118e4576118e4611536565b6001019392505050565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561194057600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156119ad578181015183820152602001611995565b50506000910152565b600082516119c8818460208701611992565b9190910192915050565b60208152600082518060208401526119f1816040850160208701611992565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e6ad2eed1ecf7ce82da9919d74f91b18da2f843c4e01e2d1ecb23ce863370e2964736f6c63430008180033", + "sourceMap": "581:6422:125:-:0;;;1332:4:44;1289:48;;1957:53:125;;;;;;;;;-1:-1:-1;1981:22:125;:20;:22::i;:::-;581:6422;;5388:279:43;5456:13;;;;;;;5455:14;5447:66;;;;-1:-1:-1;;;5447:66:43;;216:2:129;5447:66:43;;;198:21:129;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:129;;;338:37;392:19;;5447:66:43;;;;;;;;5527:12;;5542:15;5527:12;;;:30;5523:138;;;5573:12;:30;;-1:-1:-1;;5573:30:43;5588:15;5573:30;;;;;;5622:28;;564:36:129;;;5622:28:43;;552:2:129;537:18;5622:28:43;;;;;;;5523:138;5388:279::o;422:184:129:-;581:6422:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063a69df4b51161006f578063a69df4b5146103c0578063a7d31809146103d5578063c0c53b8b146103f5578063c891091314610415578063f2fde38b1461046c578063f83d08ba1461048c57600080fd5b8063715018a61461034257806373e289d0146103575780638456cb591461036d5780638da5cb5b14610382578063953ef807146103a057600080fd5b80634d5431ea116100f25780634d5431ea146102865780634f1ef286146102bf57806352d1902d146102d257806358b96e27146102e75780635c975abb1461031f57600080fd5b806317d89c4e146101ad5780632df4e21e146101f95780632e1a7d4d1461022f5780633659cfe6146102515780633f4ba83a1461027157600080fd5b366101a85733600090815260fd60205260408120805434929061015290849061154c565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709061019e9034815260200190565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101e66101c8366004611574565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561020557600080fd5b506101e6610214366004611574565b6001600160a01b0316600090815260fd602052604090205490565b34801561023b57600080fd5b5061024f61024a366004611591565b6104a1565b005b34801561025d57600080fd5b5061024f61026c366004611574565b6105de565b34801561027d57600080fd5b5061024f6106bd565b34801561029257600080fd5b506101e66102a1366004611574565b6001600160a01b0316600090815260fd602052604090206001015490565b61024f6102cd3660046115c0565b6106cf565b3480156102de57600080fd5b506101e661079f565b3480156102f357600080fd5b5060fc54610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b34801561032b57600080fd5b5060655460ff1660405190151581526020016101f0565b34801561034e57600080fd5b5061024f610852565b34801561036357600080fd5b506101e6610e1081565b34801561037957600080fd5b5061024f610864565b34801561038e57600080fd5b506033546001600160a01b0316610307565b3480156103ac57600080fd5b5060fb54610307906001600160a01b031681565b3480156103cc57600080fd5b5061024f610874565b3480156103e157600080fd5b5061024f6103f03660046116d0565b61090b565b34801561040157600080fd5b5061024f61041036600461178f565b610b9f565b34801561042157600080fd5b50610451610430366004611574565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f0565b34801561047857600080fd5b5061024f610487366004611574565b610de9565b34801561049857600080fd5b5061024f610e5f565b6104a9610ed5565b33600090815260fd6020526040902080548211156104ec5780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105005750428160010154115b1561052d576001810154604051635f6e272d60e11b815260048101919091524260248201526044016104e3565b8181600001600082825461054191906117da565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f193505050501580156105a4573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106265760405162461bcd60e51b81526004016104e3906117ed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066f600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146106955760405162461bcd60e51b81526004016104e390611839565b61069e81610f1b565b604080516000808252602082019092526106ba91839190610f23565b50565b6106c5611093565b6106cd6110ed565b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107175760405162461bcd60e51b81526004016104e3906117ed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610760600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146107865760405162461bcd60e51b81526004016104e390611839565b61078f82610f1b565b61079b82826001610f23565b5050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461083f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e3565b50600080516020611a0683398151915290565b61085a611093565b6106cd600061113f565b61086c611093565b6106cd611191565b61087c610ed5565b33600090815260fd602052604081205490036108ad5760405163b38340cf60e01b81523360048201526024016104e3565b6108b9610e104261154c565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed8439161090191815260200190565b60405180910390a2565b60fc546001600160a01b03163314610938576040516302a5785160e31b81523360048201526024016104e3565b610940610ed5565b83600081900361096357604051630c43ac2960e41b815260040160405180910390fd5b82600003610984576040516351d432c560e11b815260040160405180910390fd5b8361098f8285611885565b116109c1578361099f8285611885565b604051637899ec7160e01b8152600481019290925260248201526044016104e3565b60005b818163ffffffff161015610aa257600087878363ffffffff168181106109ec576109ec61189c565b9050602002016020810190610a019190611574565b6001600160a01b038116600090815260fd60205260409020805491925090861115610a5b578054604051634f779ceb60e01b81526001600160a01b03841660048201526024810191909152604481018790526064016104e3565b600281018054906000610a6d836118b2565b919050555085816000016000828254610a8691906117da565b9250508190555050508080610a9a906118cb565b9150506109c4565b5060fb5460405163d66eaabd60e01b81526001600160a01b039091169063d66eaabd908690610adb908d908d908d9089906004016118ee565b6000604051808303818588803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b5050505050887f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375884604051610b3f91815260200190565b60405180910390a260fc546001600160a01b03166108fc85610b618487611885565b610b6b91906117da565b6040518115909202916000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015610bbf5750600054600160ff909116105b80610bd95750303b158015610bd9575060005460ff166001145b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e3565b6000805460ff191660011790558015610c5f576000805461ff0019166101001790555b6001600160a01b038416610cae57604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b60448201526064016104e3565b6001600160a01b038316610d0557604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e657200000000000060448201526064016104e3565b6001600160a01b038216610d4c57604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b60448201526064016104e3565b610d546111ce565b610d5c6111fd565b610d64611224565b610d6d8361113f565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610de3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610df1611093565b6001600160a01b038116610e565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6106ba8161113f565b610e67610ed5565b33600090815260fd60205260408120549003610e985760405163366095e160e11b81523360048201526024016104e3565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106cd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e3565b6106ba611093565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5b57610f5683611253565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb5575060408051601f3d908101601f19168201909252610fb29181019061192e565b60015b6110185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e3565b600080516020611a0683398151915281146110875760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e3565b50610f568383836112ef565b6033546001600160a01b031633146106cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e3565b6110f5611314565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611199610ed5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111223390565b600054610100900460ff166111f55760405162461bcd60e51b81526004016104e390611947565b6106cd61135d565b600054610100900460ff166106cd5760405162461bcd60e51b81526004016104e390611947565b600054610100900460ff1661124b5760405162461bcd60e51b81526004016104e390611947565b6106cd61138d565b6001600160a01b0381163b6112c05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e3565b600080516020611a0683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6112f8836113c0565b6000825111806113055750805b15610f5657610de38383611400565b60655460ff166106cd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e3565b600054610100900460ff166113845760405162461bcd60e51b81526004016104e390611947565b6106cd3361113f565b600054610100900460ff166113b45760405162461bcd60e51b81526004016104e390611947565b6065805460ff19169055565b6113c981611253565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6114685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104e3565b600080846001600160a01b03168460405161148391906119b6565b600060405180830381855af49150503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50915091506114eb8282604051806060016040528060278152602001611a26602791396114f6565b925050505b92915050565b6060831561150557508161152f565b8251156115155782518084602001fd5b8160405162461bcd60e51b81526004016104e391906119d2565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156114f0576114f0611536565b6001600160a01b03811681146106ba57600080fd5b60006020828403121561158657600080fd5b813561152f8161155f565b6000602082840312156115a357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115d357600080fd5b82356115de8161155f565b9150602083013567ffffffffffffffff808211156115fb57600080fd5b818501915085601f83011261160f57600080fd5b813581811115611621576116216115aa565b604051601f8201601f19908116603f01168101908382118183101715611649576116496115aa565b8160405282815288602084870101111561166257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f84011261169657600080fd5b50813567ffffffffffffffff8111156116ae57600080fd5b6020830191508360208260051b85010111156116c957600080fd5b9250929050565b60008060008060008060008060c0898b0312156116ec57600080fd5b88359750602089013567ffffffffffffffff8082111561170b57600080fd5b818b0191508b601f83011261171f57600080fd5b81358181111561172e57600080fd5b8c602082850101111561174057600080fd5b6020830199508098505060408b013591508082111561175e57600080fd5b5061176b8b828c01611684565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b6000806000606084860312156117a457600080fd5b83356117af8161155f565b925060208401356117bf8161155f565b915060408401356117cf8161155f565b809150509250925092565b818103818111156114f0576114f0611536565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820281158282048414176114f0576114f0611536565b634e487b7160e01b600052603260045260246000fd5b6000600182016118c4576118c4611536565b5060010190565b600063ffffffff8083168181036118e4576118e4611536565b6001019392505050565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561194057600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156119ad578181015183820152602001611995565b50506000910152565b600082516119c8818460208701611992565b9190910192915050565b60208152600082518060208401526119f1816040850160208701611992565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e6ad2eed1ecf7ce82da9919d74f91b18da2f843c4e01e2d1ecb23ce863370e2964736f6c63430008180033", + "sourceMap": "581:6422:125:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3105:10;3096:20;;;;:8;:20;;;;;:41;;3128:9;;3096:20;:41;;3128:9;;3096:41;:::i;:::-;;;;-1:-1:-1;;3156:10:125;3186:1;3147:20;;;:8;:20;;;;;;:36;;:40;;;;3202:38;;;;;3230:9;422:25:129;;410:2;395:18;;276:177;3202:38:125;;;;;;;;581:6422;;;;;6749:115;;;;;;;;;;-1:-1:-1;6749:115:125;;;;;:::i;:::-;-1:-1:-1;;;;;6834:17:125;6808:7;6834:17;;;:8;:17;;;;;:23;;;;6749:115;;;;422:25:129;;;410:2;395:18;6749:115:125;;;;;;;;6624:119;;;;;;;;;;-1:-1:-1;6624:119:125;;;;;:::i;:::-;-1:-1:-1;;;;;6711:17:125;6685:7;6711:17;;;:8;:17;;;;;:25;;6624:119;5626:681;;;;;;;;;;-1:-1:-1;5626:681:125;;;;;:::i;:::-;;:::i;:::-;;3315:197:44;;;;;;;;;;-1:-1:-1;3315:197:44;;;;;:::i;:::-;;:::i;6378:63:125:-;;;;;;;;;;;;;:::i;6870:131::-;;;;;;;;;;-1:-1:-1;6870:131:125;;;;;:::i;:::-;-1:-1:-1;;;;;6961:17:125;6935:7;6961:17;;;:8;:17;;;;;:33;;;;6870:131;3761:222:44;;;;;;:::i;:::-;;:::i;3004:131::-;;;;;;;;;;;;;:::i;337:28:126:-;;;;;;;;;;-1:-1:-1;337:28:126;;;;-1:-1:-1;;;;;337:28:126;;;;;;-1:-1:-1;;;;;2570:32:129;;;2552:51;;2540:2;2525:18;337:28:126;2406:203:129;1858:84:45;;;;;;;;;;-1:-1:-1;1928:7:45;;;;1858:84;;2779:14:129;;2772:22;2754:41;;2742:2;2727:18;1858:84:45;2614:187:129;2071:101:39;;;;;;;;;;;;;:::i;797:56:125:-;;;;;;;;;;;;841:12;797:56;;6313:59;;;;;;;;;;;;;:::i;1441:85:39:-;;;;;;;;;;-1:-1:-1;1513:6:39;;-1:-1:-1;;;;;1513:6:39;1441:85;;269:61:126;;;;;;;;;;-1:-1:-1;269:61:126;;;;-1:-1:-1;;;;;269:61:126;;;5015:351:125;;;;;;;;;;;;;:::i;3277:1732::-;;;;;;;;;;-1:-1:-1;3277:1732:125;;;;;:::i;:::-;;:::i;2184:844::-;;;;;;;;;;-1:-1:-1;2184:844:125;;;;;:::i;:::-;;:::i;396:44:126:-;;;;;;;;;;-1:-1:-1;396:44:126;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5383:25:129;;;5439:2;5424:18;;5417:34;;;;5467:18;;;5460:34;5371:2;5356:18;396:44:126;5181:319:129;2321:198:39;;;;;;;;;;-1:-1:-1;2321:198:39;;;;;:::i;:::-;;:::i;5372:248:125:-;;;;;;;;;;;;;:::i;5626:681::-;1482:19:45;:17;:19::i;:::-;5732:10:125::1;5693:27;5723:20:::0;;;:8:::1;:20;::::0;;;;5757:18;;:27;-1:-1:-1;5753:117:125::1;;;5832:18:::0;;5807:52:::1;::::0;-1:-1:-1;;;5807:52:125;;::::1;::::0;::::1;5679:25:129::0;;;;5720:18;;;5713:34;;;5652:18;;5807:52:125::1;;;;;;;;5753:117;5897:26;::::0;::::1;::::0;:31;;:91:::1;;;5973:15;5944:10;:26;;;:44;5897:91;5880:207;;;6032:26;::::0;::::1;::::0;6020:56:::1;::::0;-1:-1:-1;;;6020:56:125;;::::1;::::0;::::1;5679:25:129::0;;;;6060:15:125::1;5720:18:129::0;;;5713:34;5652:18;;6020:56:125::1;5505:248:129::0;5880:207:125::1;6119:6;6097:10;:18;;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;6164:1:125::1;6135:26;::::0;::::1;:30:::0;;;6180:25:::1;::::0;6194:10:::1;::::0;6180:25:::1;::::0;::::1;6215:36;::::0;6223:10:::1;::::0;6215:36;::::1;;;::::0;6244:6;;6215:36:::1;::::0;;;6244:6;6223:10;6215:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;6266:34:125::1;::::0;422:25:129;;;6281:10:125::1;::::0;6266:34:::1;::::0;410:2:129;395:18;6266:34:125::1;;;;;;;5683:624;5626:681:::0;:::o;3315:197:44:-;-1:-1:-1;;;;;1898:6:44;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:44;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:44;:20;-1:-1:-1;;;;;;;;;;;1642:65:41;-1:-1:-1;;;;;1642:65:41;;1563:151;1971:20:44;-1:-1:-1;;;;;1971:30:44;;1963:87;;;;-1:-1:-1;;;1963:87:44;;;;;;;:::i;:::-;3398:36:::1;3416:17;3398;:36::i;:::-;3485:12;::::0;;3495:1:::1;3485:12:::0;;;::::1;::::0;::::1;::::0;;;3444:61:::1;::::0;3466:17;;3485:12;3444:21:::1;:61::i;:::-;3315:197:::0;:::o;6378:63:125:-;1334:13:39;:11;:13::i;:::-;6424:10:125::1;:8;:10::i;:::-;6378:63::o:0;3761:222:44:-;-1:-1:-1;;;;;1898:6:44;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:44;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:44;:20;-1:-1:-1;;;;;;;;;;;1642:65:41;-1:-1:-1;;;;;1642:65:41;;1563:151;1971:20:44;-1:-1:-1;;;;;1971:30:44;;1963:87;;;;-1:-1:-1;;;1963:87:44;;;;;;;:::i;:::-;3878:36:::1;3896:17;3878;:36::i;:::-;3924:52;3946:17;3965:4;3971;3924:21;:52::i;:::-;3761:222:::0;;:::o;3004:131::-;3082:7;2324:4;-1:-1:-1;;;;;2333:6:44;2316:23;;2308:92;;;;-1:-1:-1;;;2308:92:44;;6919:2:129;2308:92:44;;;6901:21:129;6958:2;6938:18;;;6931:30;6997:34;6977:18;;;6970:62;7068:26;7048:18;;;7041:54;7112:19;;2308:92:44;6717:420:129;2308:92:44;-1:-1:-1;;;;;;;;;;;;3004:131:44;:::o;2071:101:39:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;6313:59:125:-:0;1334:13:39;:11;:13::i;:::-;6357:8:125::1;:6;:8::i;5015:351::-:0;1482:19:45;:17;:19::i;:::-;5079:10:125::1;5070:20;::::0;;;:8:::1;:20;::::0;;;;:28;:33;;5066:105:::1;;5126:34;::::0;-1:-1:-1;;;5126:34:125;;5149:10:::1;5126:34;::::0;::::1;2552:51:129::0;2525:18;;5126:34:125::1;2406:203:129::0;5066:105:125::1;5232:47;841:12;5232:15;:47;:::i;:::-;5190:10;5181:20;::::0;;;:8:::1;:20;::::0;;;;;;:36:::1;;:98:::0;;;5294:65;5190:10;;5294:65:::1;::::0;::::1;::::0;422:25:129;;410:2;395:18;;276:177;5294:65:125::1;;;;;;;;5015:351::o:0;3277:1732::-;2084:13;;-1:-1:-1;;;;;2084:13:125;2070:10;:27;2066:95;;2120:30;;-1:-1:-1;;;2120:30:125;;2139:10;2120:30;;;2552:51:129;2525:18;;2120:30:125;2406:203:129;2066:95:125;1482:19:45::1;:17;:19::i;:::-;3602:15:125::0;3573:26:::2;3639:23:::0;;;3635:80:::2;;3685:19;;-1:-1:-1::0;;;3685:19:125::2;;;;;;;;;;;3635:80;3729:11;3744:1;3729:16:::0;3725:69:::2;;3768:15;;-1:-1:-1::0;;;3768:15:125::2;;;;;;;;;;;3725:69;3844:16:::0;3808:32:::2;3822:18:::0;3808:11;:32:::2;:::i;:::-;:52;3804:217;;3929:16:::0;3963:32:::2;3977:18:::0;3963:11;:32:::2;:::i;:::-;3883:127;::::0;-1:-1:-1;;;3883:127:125;;::::2;::::0;::::2;5679:25:129::0;;;;5720:18;;;5713:34;5652:18;;3883:127:125::2;5505:248:129::0;3804:217:125::2;4070:8;4065:489;4088:18;4084:1;:22;;;4065:489;;;4127:22;4152:15;;4168:1;4152:18;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4209:24:125;::::2;4185:21;4209:24:::0;;;:8:::2;:24;::::0;;;;4331:12;;4127:43;;-1:-1:-1;4209:24:125;4331:26;-1:-1:-1;4327:144:125::2;;;4430:12:::0;;4384:72:::2;::::0;-1:-1:-1;;;4384:72:125;;-1:-1:-1;;;;;7667:32:129;;4384:72:125::2;::::0;::::2;7649:51:129::0;7716:18;;;7709:34;;;;7759:18;;;7752:34;;;7622:18;;4384:72:125::2;7447:345:129::0;4327:144:125::2;4485:10;::::0;::::2;:12:::0;;;:10:::2;:12;::::0;::::2;:::i;:::-;;;;;;4532:11;4516:4;:12;;;:27;;;;;;;:::i;:::-;;;;;;;;4113:441;;4108:3;;;;;:::i;:::-;;;;4065:489;;;-1:-1:-1::0;4657:26:125::2;::::0;:169:::2;::::0;-1:-1:-1;;;4657:169:125;;-1:-1:-1;;;;;4657:26:125;;::::2;::::0;:40:::2;::::0;4705:16;;4657:169:::2;::::0;4736:15;;4765:16;;;;4795:21;;4657:169:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;4854:15;4842:41;4871:11;4842:41;;;;422:25:129::0;;410:2;395:18;;276:177;4842:41:125::2;;;;;;;;4902:13;::::0;-1:-1:-1;;;;;4902:13:125::2;4894:108;4976:16:::0;4940:32:::2;4954:18:::0;4940:11;:32:::2;:::i;:::-;4939:53;;;;:::i;:::-;4894:108;::::0;;::::2;::::0;;::::2;::::0;::::2;::::0;;;;;;::::2;;;;;;;;;;;;;::::0;::::2;;;;;;3563:1446;3277:1732:::0;;;;;;;;:::o;2184:844::-;3111:19:43;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:43;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:43;1476:19:47;:23;;;3219:66:43;;-1:-1:-1;3268:12:43;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:43;;8885:2:129;3157:201:43;;;8867:21:129;8924:2;8904:18;;;8897:30;8963:34;8943:18;;;8936:62;-1:-1:-1;;;9014:18:129;;;9007:44;9068:19;;3157:201:43;8683:410:129;3157:201:43;3368:12;:16;;-1:-1:-1;;3368:16:43;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:43;;;;;3394:65;-1:-1:-1;;;;;2385:50:125;::::1;2381:127;;2458:39;::::0;-1:-1:-1;;;2458:39:125;;9300:2:129;2458:39:125::1;::::0;::::1;9282:21:129::0;9339:2;9319:18;;;9312:30;-1:-1:-1;;;9358:18:129;;;9351:51;9419:18;;2458:39:125::1;9098:345:129::0;2381:127:125::1;-1:-1:-1::0;;;;;2521:41:125;::::1;2517:123;;2585:44;::::0;-1:-1:-1;;;2585:44:125;;9650:2:129;2585:44:125::1;::::0;::::1;9632:21:129::0;9689:2;9669:18;;;9662:30;9728:28;9708:18;;;9701:56;9774:18;;2585:44:125::1;9448:350:129::0;2517:123:125::1;-1:-1:-1::0;;;;;2653:28:125;::::1;2649:97;;2704:31;::::0;-1:-1:-1;;;2704:31:125;;10005:2:129;2704:31:125::1;::::0;::::1;9987:21:129::0;10044:2;10024:18;;;10017:30;-1:-1:-1;;;10063:18:129;;;10056:43;10116:18;;2704:31:125::1;9803:337:129::0;2649:97:125::1;2755:16;:14;:16::i;:::-;2806:24;:22;:24::i;:::-;2840:17;:15;:17::i;:::-;2867:47;2886:27;2867:18;:47::i;:::-;2925:26;:56:::0;;-1:-1:-1;;;;;2925:56:125;;::::1;-1:-1:-1::0;;;;;;2925:56:125;;::::1;;::::0;;;2991:13:::1;:30:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;3479:99:43;;;;3529:5;3513:21;;-1:-1:-1;;3513:21:43;;;3553:14;;-1:-1:-1;10297:36:129;;3553:14:43;;10285:2:129;10270:18;3553:14:43;;;;;;;3479:99;3101:483;2184:844:125;;;:::o;2321:198:39:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:39;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:39;;10546:2:129;2401:73:39::1;::::0;::::1;10528:21:129::0;10585:2;10565:18;;;10558:30;10624:34;10604:18;;;10597:62;-1:-1:-1;;;10675:18:129;;;10668:36;10721:19;;2401:73:39::1;10344:402:129::0;2401:73:39::1;2484:28;2503:8;2484:18;:28::i;5372:248:125:-:0;1482:19:45;:17;:19::i;:::-;5434:10:125::1;5425:20;::::0;;;:8:::1;:20;::::0;;;;:28;:33;;5421:103:::1;;5481:32;::::0;-1:-1:-1;;;5481:32:125;;5502:10:::1;5481:32;::::0;::::1;2552:51:129::0;2525:18;;5481:32:125::1;2406:203:129::0;5421:103:125::1;5542:10;5572:1;5533:20:::0;;;:8:::1;:20;::::0;;;;;:36:::1;;:40:::0;;;5588:25;::::1;::::0;5572:1;5588:25:::1;5372:248::o:0;2010:106:45:-;1928:7;;;;2079:9;2071:38;;;;-1:-1:-1;;;2071:38:45;;10953:2:129;2071:38:45;;;10935:21:129;10992:2;10972:18;;;10965:30;-1:-1:-1;;;11011:18:129;;;11004:46;11067:18;;2071:38:45;10751:340:129;6447:171:125;1334:13:39;:11;:13::i;2938:974:41:-;951:66;3384:59;;;3380:526;;;3459:37;3478:17;3459:18;:37::i;:::-;2938:974;;;:::o;3380:526::-;3560:17;-1:-1:-1;;;;;3531:61:41;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3531:63:41;;;;;;;;-1:-1:-1;;3531:63:41;;;;;;;;;;;;:::i;:::-;;;3527:302;;3758:56;;-1:-1:-1;;;3758:56:41;;11487:2:129;3758:56:41;;;11469:21:129;11526:2;11506:18;;;11499:30;11565:34;11545:18;;;11538:62;-1:-1:-1;;;11616:18:129;;;11609:44;11670:19;;3758:56:41;11285:410:129;3527:302:41;-1:-1:-1;;;;;;;;;;;3644:28:41;;3636:82;;;;-1:-1:-1;;;3636:82:41;;11902:2:129;3636:82:41;;;11884:21:129;11941:2;11921:18;;;11914:30;11980:34;11960:18;;;11953:62;-1:-1:-1;;;12031:18:129;;;12024:39;12080:19;;3636:82:41;11700:405:129;3636:82:41;3595:138;3842:53;3860:17;3879:4;3885:9;3842:17;:53::i;1599:130:39:-;1513:6;;-1:-1:-1;;;;;1513:6:39;929:10:48;1662:23:39;1654:68;;;;-1:-1:-1;;;1654:68:39;;12312:2:129;1654:68:39;;;12294:21:129;;;12331:18;;;12324:30;12390:34;12370:18;;;12363:62;12442:18;;1654:68:39;12110:356:129;2676:117:45;1729:16;:14;:16::i;:::-;2734:7:::1;:15:::0;;-1:-1:-1;;2734:15:45::1;::::0;;2764:22:::1;929:10:48::0;2773:12:45::1;2764:22;::::0;-1:-1:-1;;;;;2570:32:129;;;2552:51;;2540:2;2525:18;2764:22:45::1;;;;;;;2676:117::o:0;2673:187:39:-;2765:6;;;-1:-1:-1;;;;;2781:17:39;;;-1:-1:-1;;;;;;2781:17:39;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;2429:115:45:-;1482:19;:17;:19::i;:::-;2488:7:::1;:14:::0;;-1:-1:-1;;2488:14:45::1;2498:4;2488:14;::::0;;2517:20:::1;2524:12;929:10:48::0;;850:96;1003:95:39;4910:13:43;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:43;;;;;;;:::i;:::-;1065:26:39::1;:24;:26::i;1042:67:44:-:0;4910:13:43;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:43;;;;;;;:::i;1063:97:45:-;4910:13:43;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:43;;;;;;;:::i;:::-;1126:27:45::1;:25;:27::i;1805:281:41:-:0;-1:-1:-1;;;;;1476:19:47;;;1878:106:41;;;;-1:-1:-1;;;1878:106:41;;13085:2:129;1878:106:41;;;13067:21:129;13124:2;13104:18;;;13097:30;13163:34;13143:18;;;13136:62;-1:-1:-1;;;13214:18:129;;;13207:43;13267:19;;1878:106:41;12883:409:129;1878:106:41;-1:-1:-1;;;;;;;;;;;1994:85:41;;-1:-1:-1;;;;;;1994:85:41;-1:-1:-1;;;;;1994:85:41;;;;;;;;;;1805:281::o;2478:288::-;2616:29;2627:17;2616:10;:29::i;:::-;2673:1;2659:4;:11;:15;:28;;;;2678:9;2659:28;2655:105;;;2703:46;2725:17;2744:4;2703:21;:46::i;2188:106:45:-;1928:7;;;;2246:41;;;;-1:-1:-1;;;2246:41:45;;13499:2:129;2246:41:45;;;13481:21:129;13538:2;13518:18;;;13511:30;-1:-1:-1;;;13557:18:129;;;13550:50;13617:18;;2246:41:45;13297:344:129;1104:111:39;4910:13:43;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:43;;;;;;;:::i;:::-;1176:32:39::1;929:10:48::0;1176:18:39::1;:32::i;1166:95:45:-:0;4910:13:43;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:43;;;;;;;:::i;:::-;1239:7:45::1;:15:::0;;-1:-1:-1;;1239:15:45::1;::::0;;1166:95::o;2192:152:41:-;2258:37;2277:17;2258:18;:37::i;:::-;2310:27;;-1:-1:-1;;;;;2310:27:41;;;;;;;;2192:152;:::o;7088:455::-;7171:12;-1:-1:-1;;;;;1476:19:47;;;7195:88:41;;;;-1:-1:-1;;;7195:88:41;;13848:2:129;7195:88:41;;;13830:21:129;13887:2;13867:18;;;13860:30;13926:34;13906:18;;;13899:62;-1:-1:-1;;;13977:18:129;;;13970:36;14023:19;;7195:88:41;13646:402:129;7195:88:41;7354:12;7368:23;7395:6;-1:-1:-1;;;;;7395:19:41;7415:4;7395:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7353:67;;;;7437:99;7473:7;7482:10;7437:99;;;;;;;;;;;;;;;;;:35;:99::i;:::-;7430:106;;;;7088:455;;;;;:::o;6622:742:47:-;6768:12;6796:7;6792:566;;;-1:-1:-1;6826:10:47;6819:17;;6792:566;6937:17;;:21;6933:415;;7181:10;7175:17;7241:15;7228:10;7224:2;7220:19;7213:44;6933:415;7320:12;7313:20;;-1:-1:-1;;;7313:20:47;;;;;;;;:::i;6933:415::-;6622:742;;;;;:::o;14:127:129:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:125;211:9;;;232:10;;;229:36;;;245:18;;:::i;458:131::-;-1:-1:-1;;;;;533:31:129;;523:42;;513:70;;579:1;576;569:12;594:247;653:6;706:2;694:9;685:7;681:23;677:32;674:52;;;722:1;719;712:12;674:52;761:9;748:23;780:31;805:5;780:31;:::i;846:180::-;905:6;958:2;946:9;937:7;933:23;929:32;926:52;;;974:1;971;964:12;926:52;-1:-1:-1;997:23:129;;846:180;-1:-1:-1;846:180:129:o;1031:127::-;1092:10;1087:3;1083:20;1080:1;1073:31;1123:4;1120:1;1113:15;1147:4;1144:1;1137:15;1163:1056;1240:6;1248;1301:2;1289:9;1280:7;1276:23;1272:32;1269:52;;;1317:1;1314;1307:12;1269:52;1356:9;1343:23;1375:31;1400:5;1375:31;:::i;:::-;1425:5;-1:-1:-1;1481:2:129;1466:18;;1453:32;1504:18;1534:14;;;1531:34;;;1561:1;1558;1551:12;1531:34;1599:6;1588:9;1584:22;1574:32;;1644:7;1637:4;1633:2;1629:13;1625:27;1615:55;;1666:1;1663;1656:12;1615:55;1702:2;1689:16;1724:2;1720;1717:10;1714:36;;;1730:18;;:::i;:::-;1805:2;1799:9;1773:2;1859:13;;-1:-1:-1;;1855:22:129;;;1879:2;1851:31;1847:40;1835:53;;;1903:18;;;1923:22;;;1900:46;1897:72;;;1949:18;;:::i;:::-;1989:10;1985:2;1978:22;2024:2;2016:6;2009:18;2064:7;2059:2;2054;2050;2046:11;2042:20;2039:33;2036:53;;;2085:1;2082;2075:12;2036:53;2141:2;2136;2132;2128:11;2123:2;2115:6;2111:15;2098:46;2186:1;2181:2;2176;2168:6;2164:15;2160:24;2153:35;2207:6;2197:16;;;;;;;1163:1056;;;;;:::o;3051:367::-;3114:8;3124:6;3178:3;3171:4;3163:6;3159:17;3155:27;3145:55;;3196:1;3193;3186:12;3145:55;-1:-1:-1;3219:20:129;;3262:18;3251:30;;3248:50;;;3294:1;3291;3284:12;3248:50;3331:4;3323:6;3319:17;3307:29;;3391:3;3384:4;3374:6;3371:1;3367:14;3359:6;3355:27;3351:38;3348:47;3345:67;;;3408:1;3405;3398:12;3345:67;3051:367;;;;;:::o;3423:1182::-;3566:6;3574;3582;3590;3598;3606;3614;3622;3675:3;3663:9;3654:7;3650:23;3646:33;3643:53;;;3692:1;3689;3682:12;3643:53;3728:9;3715:23;3705:33;;3789:2;3778:9;3774:18;3761:32;3812:18;3853:2;3845:6;3842:14;3839:34;;;3869:1;3866;3859:12;3839:34;3907:6;3896:9;3892:22;3882:32;;3952:7;3945:4;3941:2;3937:13;3933:27;3923:55;;3974:1;3971;3964:12;3923:55;4014:2;4001:16;4040:2;4032:6;4029:14;4026:34;;;4056:1;4053;4046:12;4026:34;4101:7;4096:2;4087:6;4083:2;4079:15;4075:24;4072:37;4069:57;;;4122:1;4119;4112:12;4069:57;4153:2;4149;4145:11;4135:21;;4175:6;4165:16;;;4234:2;4223:9;4219:18;4206:32;4190:48;;4263:2;4253:8;4250:16;4247:36;;;4279:1;4276;4269:12;4247:36;;4318:72;4382:7;4371:8;4360:9;4356:24;4318:72;:::i;:::-;3423:1182;;;;-1:-1:-1;3423:1182:129;;4409:8;;4292:98;4491:2;4476:18;;4463:32;;4542:3;4527:19;;4514:33;;-1:-1:-1;4594:3:129;4579:19;4566:33;;-1:-1:-1;3423:1182:129;-1:-1:-1;;;;3423:1182:129:o;4610:566::-;4724:6;4732;4740;4793:2;4781:9;4772:7;4768:23;4764:32;4761:52;;;4809:1;4806;4799:12;4761:52;4848:9;4835:23;4867:31;4892:5;4867:31;:::i;:::-;4917:5;-1:-1:-1;4974:2:129;4959:18;;4946:32;4987:33;4946:32;4987:33;:::i;:::-;5039:7;-1:-1:-1;5098:2:129;5083:18;;5070:32;5111:33;5070:32;5111:33;:::i;:::-;5163:7;5153:17;;;4610:566;;;;;:::o;5758:128::-;5825:9;;;5846:11;;;5843:37;;;5860:18;;:::i;5891:408::-;6093:2;6075:21;;;6132:2;6112:18;;;6105:30;6171:34;6166:2;6151:18;;6144:62;-1:-1:-1;;;6237:2:129;6222:18;;6215:42;6289:3;6274:19;;5891:408::o;6304:::-;6506:2;6488:21;;;6545:2;6525:18;;;6518:30;6584:34;6579:2;6564:18;;6557:62;-1:-1:-1;;;6650:2:129;6635:18;;6628:42;6702:3;6687:19;;6304:408::o;7142:168::-;7215:9;;;7246;;7263:15;;;7257:22;;7243:37;7233:71;;7284:18;;:::i;7315:127::-;7376:10;7371:3;7367:20;7364:1;7357:31;7407:4;7404:1;7397:15;7431:4;7428:1;7421:15;7797:135;7836:3;7857:17;;;7854:43;;7877:18;;:::i;:::-;-1:-1:-1;7924:1:129;7913:13;;7797:135::o;7937:201::-;7975:3;8003:10;8048:2;8041:5;8037:14;8075:2;8066:7;8063:15;8060:41;;8081:18;;:::i;:::-;8130:1;8117:15;;7937:201;-1:-1:-1;;;7937:201:129:o;8143:535::-;8358:6;8347:9;8340:25;8401:2;8396;8385:9;8381:18;8374:30;8440:6;8435:2;8424:9;8420:18;8413:34;8498:6;8490;8484:3;8473:9;8469:19;8456:49;8555:1;8549:3;8540:6;8529:9;8525:22;8521:32;8514:43;8321:4;8625:3;8618:2;8614:7;8609:2;8601:6;8597:15;8593:29;8582:9;8578:45;8574:55;8566:63;;8665:6;8660:2;8649:9;8645:18;8638:34;8143:535;;;;;;;:::o;11096:184::-;11166:6;11219:2;11207:9;11198:7;11194:23;11190:32;11187:52;;;11235:1;11232;11225:12;11187:52;-1:-1:-1;11258:16:129;;11096:184;-1:-1:-1;11096:184:129:o;12471:407::-;12673:2;12655:21;;;12712:2;12692:18;;;12685:30;12751:34;12746:2;12731:18;;12724:62;-1:-1:-1;;;12817:2:129;12802:18;;12795:41;12868:3;12853:19;;12471:407::o;14053:250::-;14138:1;14148:113;14162:6;14159:1;14156:13;14148:113;;;14238:11;;;14232:18;14219:11;;;14212:39;14184:2;14177:10;14148:113;;;-1:-1:-1;;14295:1:129;14277:16;;14270:27;14053:250::o;14308:287::-;14437:3;14475:6;14469:13;14491:66;14550:6;14545:3;14538:4;14530:6;14526:17;14491:66;:::i;:::-;14573:16;;;;;14308:287;-1:-1:-1;;14308:287:129:o;14600:396::-;14749:2;14738:9;14731:21;14712:4;14781:6;14775:13;14824:6;14819:2;14808:9;14804:18;14797:34;14840:79;14912:6;14907:2;14896:9;14892:18;14887:2;14879:6;14875:15;14840:79;:::i;:::-;14980:2;14959:15;-1:-1:-1;;14955:29:129;14940:45;;;;14987:2;14936:54;;14600:396;-1:-1:-1;;14600:396:129:o", + "linkReferences": {}, + "immutableReferences": { + "14711": [ + { "start": 1512, "length": 32 }, + { "start": 1576, "length": 32 }, + { "start": 1753, "length": 32 }, + { "start": 1817, "length": 32 }, + { "start": 1964, "length": 32 } + ] + } + }, + "methodIdentifiers": { + "UNLOCK_BLOCK_TIME()": "73e289d0", + "alignedLayerServiceManager()": "953ef807", + "batcherWallet()": "58b96e27", + "createNewTask(bytes32,string,address[],uint256,uint256,uint256)": "a7d31809", + "initialize(address,address,address)": "c0c53b8b", + "lock()": "f83d08ba", + "owner()": "8da5cb5b", + "pause()": "8456cb59", + "paused()": "5c975abb", + "proxiableUUID()": "52d1902d", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b", + "unlock()": "a69df4b5", + "unpause()": "3f4ba83a", + "upgradeTo(address)": "3659cfe6", + "upgradeToAndCall(address,bytes)": "4f1ef286", + "userData(address)": "c8910913", + "user_balances(address)": "2df4e21e", + "user_nonces(address)": "17d89c4e", + "user_unlock_block(address)": "4d5431ea", + "withdraw(uint256)": "2e1a7d4d" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"unlockBlockTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentBlockTime\",\"type\":\"uint256\"}],\"name\":\"FundsLocked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"}],\"name\":\"InsufficientFeeForAggregator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"param\",\"type\":\"string\"}],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFeePerProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoProofSubmitters\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"OnlyBatcherAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PayerInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"SubmissionInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"UserHasNoFundsToLock\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"UserHasNoFundsToUnlock\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"BalanceLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockBlockTime\",\"type\":\"uint256\"}],\"name\":\"BalanceUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"feePerProof\",\"type\":\"uint256\"}],\"name\":\"TaskCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UNLOCK_BLOCK_TIME\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"alignedLayerServiceManager\",\"outputs\":[{\"internalType\":\"contract IAlignedLayerServiceManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batcherWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"batchDataPointer\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"proofSubmitters\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"feeForAggregator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"feePerProof\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\"}],\"name\":\"createNewTask\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IAlignedLayerServiceManager\",\"name\":\"_alignedLayerServiceManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_batcherPaymentServiceOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_batcherWallet\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userData\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unlockBlockTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"user_balances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"user_nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"user_unlock_block\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate that the this implementation remains valid after an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/BatcherPaymentService.sol\":\"BatcherPaymentService\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":@openzeppelin-upgrades/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/\"]},\"sources\":{\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2\",\"dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x6e36e9b4b71de699c2f3f0d4e4d1aa0b35da99a26e8d5b91ef09ba234b4ef270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abfa467c53a0d60b4d09bf04aa952b1d1d44e5766fcc053aace078d7859b8419\",\"dweb:/ipfs/QmebVTZpyNxYfKYTuLMywzEJTdc1Ca8ME4xm3kR9gQgToG\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol\":{\"keccak256\":\"0x40c636b4572ff5f1dc50cf22097e93c0723ee14eff87e99ac2b02636eeca1250\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9c7d1f5e15633ab912b74c2f57e24559e66b03232300d4b27ff0f25bc452ecad\",\"dweb:/ipfs/QmYTJkc1cntYkKQ1Tu11nBcJLakiy93Tjytc4XHELo4GmR\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3\",\"dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"src/core/BatcherPaymentService.sol\":{\"keccak256\":\"0xde76335b91ce8f21e0696b61926c8e9245e181c3cc9be663eaa5c507c746ffab\",\"urls\":[\"bzz-raw://394f282424a2617eba561cd236291d4182925d8f8c14b1934ba9e1de402b3e6b\",\"dweb:/ipfs/Qmb7QLrMexNpM6vhuQZbxQPyyVUmp3rAyRvUMpG1UZ4oyq\"]},\"src/core/BatcherPaymentServiceStorage.sol\":{\"keccak256\":\"0x92fbdf600fa213d4e30b91d8da8840d81b9cc785d4e172ca8e12641141303f02\",\"urls\":[\"bzz-raw://cd655f3850314df75dca1a6ccbe858f1d701e625264919ff90914657314a827c\",\"dweb:/ipfs/QmR7RNYi3QEpr86s8pQic84KWxJFs7jwu5u8pHy2DaJnDj\"]},\"src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xcf8e4bafd12a0ba8fa429c2944dd359714cb3e0679879a8ff90923cbaa814b8f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a6076ada95c77d0999b80c5eac3085aad5edc6ce18de7bf6e66261c35b5bf4fd\",\"dweb:/ipfs/QmT64P4RaR4vCW238S1Z9sU9N1LJxoZGrq7tEtRgmbwghS\"]}},\"version\":1}", + "metadata": { + "compiler": { "version": "0.8.24+commit.e11b9ed9" }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "unlockBlockTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "currentBlockTime", + "type": "uint256" + } + ], + "type": "error", + "name": "FundsLocked" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "required", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "available", + "type": "uint256" + } + ], + "type": "error", + "name": "InsufficientFeeForAggregator" + }, + { + "inputs": [ + { "internalType": "string", "name": "param", "type": "string" } + ], + "type": "error", + "name": "InvalidAddress" + }, + { "inputs": [], "type": "error", "name": "NoFeePerProof" }, + { "inputs": [], "type": "error", "name": "NoProofSubmitters" }, + { + "inputs": [ + { "internalType": "address", "name": "caller", "type": "address" } + ], + "type": "error", + "name": "OnlyBatcherAllowed" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "balance", "type": "uint256" }, + { "internalType": "uint256", "name": "amount", "type": "uint256" } + ], + "type": "error", + "name": "PayerInsufficientBalance" + }, + { + "inputs": [ + { "internalType": "address", "name": "sender", "type": "address" }, + { "internalType": "uint256", "name": "balance", "type": "uint256" }, + { "internalType": "uint256", "name": "required", "type": "uint256" } + ], + "type": "error", + "name": "SubmissionInsufficientBalance" + }, + { + "inputs": [ + { "internalType": "address", "name": "user", "type": "address" } + ], + "type": "error", + "name": "UserHasNoFundsToLock" + }, + { + "inputs": [ + { "internalType": "address", "name": "user", "type": "address" } + ], + "type": "error", + "name": "UserHasNoFundsToUnlock" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "previousAdmin", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "newAdmin", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "AdminChanged", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address", + "indexed": true + } + ], + "type": "event", + "name": "BalanceLocked", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "unlockBlockTime", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "BalanceUnlocked", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beacon", + "type": "address", + "indexed": true + } + ], + "type": "event", + "name": "BeaconUpgraded", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "FundsWithdrawn", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "version", + "type": "uint8", + "indexed": false + } + ], + "type": "event", + "name": "Initialized", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "previousOwner", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "newOwner", + "type": "address", + "indexed": true + } + ], + "type": "event", + "name": "OwnershipTransferred", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "Paused", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "PaymentReceived", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "batchMerkleRoot", + "type": "bytes32", + "indexed": true + }, + { + "internalType": "uint256", + "name": "feePerProof", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "TaskCreated", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "Unpaused", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address", + "indexed": true + } + ], + "type": "event", + "name": "Upgraded", + "anonymous": false + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "UNLOCK_BLOCK_TIME", + "outputs": [ + { "internalType": "uint256", "name": "", "type": "uint256" } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "alignedLayerServiceManager", + "outputs": [ + { + "internalType": "contract IAlignedLayerServiceManager", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "batcherWallet", + "outputs": [ + { "internalType": "address", "name": "", "type": "address" } + ] + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "batchMerkleRoot", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "batchDataPointer", + "type": "string" + }, + { + "internalType": "address[]", + "name": "proofSubmitters", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "feeForAggregator", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "feePerProof", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "respondToTaskFeeLimit", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "createNewTask" + }, + { + "inputs": [ + { + "internalType": "contract IAlignedLayerServiceManager", + "name": "_alignedLayerServiceManager", + "type": "address" + }, + { + "internalType": "address", + "name": "_batcherPaymentServiceOwner", + "type": "address" + }, + { + "internalType": "address", + "name": "_batcherWallet", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "initialize" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "lock" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "owner", + "outputs": [ + { "internalType": "address", "name": "", "type": "address" } + ] + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "pause" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "paused", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "proxiableUUID", + "outputs": [ + { "internalType": "bytes32", "name": "", "type": "bytes32" } + ] + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "renounceOwnership" + }, + { + "inputs": [ + { "internalType": "address", "name": "newOwner", "type": "address" } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transferOwnership" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "unlock" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "unpause" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "upgradeTo" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + }, + { "internalType": "bytes", "name": "data", "type": "bytes" } + ], + "stateMutability": "payable", + "type": "function", + "name": "upgradeToAndCall" + }, + { + "inputs": [ + { "internalType": "address", "name": "", "type": "address" } + ], + "stateMutability": "view", + "type": "function", + "name": "userData", + "outputs": [ + { "internalType": "uint256", "name": "balance", "type": "uint256" }, + { + "internalType": "uint256", + "name": "unlockBlockTime", + "type": "uint256" + }, + { "internalType": "uint256", "name": "nonce", "type": "uint256" } + ] + }, + { + "inputs": [ + { "internalType": "address", "name": "account", "type": "address" } + ], + "stateMutability": "view", + "type": "function", + "name": "user_balances", + "outputs": [ + { "internalType": "uint256", "name": "", "type": "uint256" } + ] + }, + { + "inputs": [ + { "internalType": "address", "name": "account", "type": "address" } + ], + "stateMutability": "view", + "type": "function", + "name": "user_nonces", + "outputs": [ + { "internalType": "uint256", "name": "", "type": "uint256" } + ] + }, + { + "inputs": [ + { "internalType": "address", "name": "account", "type": "address" } + ], + "stateMutability": "view", + "type": "function", + "name": "user_unlock_block", + "outputs": [ + { "internalType": "uint256", "name": "", "type": "uint256" } + ] + }, + { + "inputs": [ + { "internalType": "uint256", "name": "amount", "type": "uint256" } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "withdraw" + }, + { "inputs": [], "stateMutability": "payable", "type": "receive" } + ], + "devdoc": { + "kind": "dev", + "methods": { + "owner()": { "details": "Returns the address of the current owner." }, + "paused()": { + "details": "Returns true if the contract is paused, and false otherwise." + }, + "proxiableUUID()": { + "details": "Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate that the this implementation remains valid after an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier." + }, + "renounceOwnership()": { + "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." + }, + "transferOwnership(address)": { + "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." + }, + "upgradeTo(address)": { + "details": "Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event." + }, + "upgradeToAndCall(address,bytes)": { + "details": "Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event." + } + }, + "version": 1 + }, + "userdoc": { "kind": "user", "methods": {}, "version": 1 } + }, + "settings": { + "remappings": [ + "@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/", + "@openzeppelin-upgrades/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/", + "@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/", + "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", + "@openzeppelin/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/", + "ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/", + "eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/", + "eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/", + "eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/", + "eigenlayer-middleware/=lib/eigenlayer-middleware/src/", + "eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/", + "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/", + "forge-std/=lib/forge-std/src/", + "openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/", + "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", + "openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/", + "openzeppelin-contracts/=lib/openzeppelin-contracts/", + "openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/" + ], + "optimizer": { "enabled": true, "runs": 200 }, + "metadata": { "bytecodeHash": "ipfs" }, + "compilationTarget": { + "src/core/BatcherPaymentService.sol": "BatcherPaymentService" + }, + "evmVersion": "paris", + "libraries": {} + }, + "sources": { + "lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol": { + "keccak256": "0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00", + "urls": [ + "bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983", + "dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol": { + "keccak256": "0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9", + "urls": [ + "bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914", + "dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol": { + "keccak256": "0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c", + "urls": [ + "bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91", + "dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz" + ], + "license": "CC0-1.0" + }, + "lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol": { + "keccak256": "0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba", + "urls": [ + "bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc", + "dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol": { + "keccak256": "0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c", + "urls": [ + "bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8", + "dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol": { + "keccak256": "0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f", + "urls": [ + "bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324", + "dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol": { + "keccak256": "0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49", + "urls": [ + "bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d", + "dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol": { + "keccak256": "0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092", + "urls": [ + "bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c", + "dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol": { + "keccak256": "0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79", + "urls": [ + "bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232", + "dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol": { + "keccak256": "0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420", + "urls": [ + "bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73", + "dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol": { + "keccak256": "0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52", + "urls": [ + "bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef", + "dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol": { + "keccak256": "0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377", + "urls": [ + "bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7", + "dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol": { + "keccak256": "0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d", + "urls": [ + "bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f", + "dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol": { + "keccak256": "0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71", + "urls": [ + "bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f", + "dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5" + ], + "license": "MIT" + }, + "lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol": { + "keccak256": "0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888", + "urls": [ + "bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a", + "dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb" + ], + "license": "MIT" + }, + "lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol": { + "keccak256": "0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f", + "urls": [ + "bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053", + "dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79" + ], + "license": "MIT" + }, + "lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol": { + "keccak256": "0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823", + "urls": [ + "bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2", + "dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn" + ], + "license": "MIT" + }, + "lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol": { + "keccak256": "0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908", + "urls": [ + "bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1", + "dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ" + ], + "license": "MIT" + }, + "lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol": { + "keccak256": "0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e", + "urls": [ + "bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497", + "dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8" + ], + "license": "MIT" + }, + "lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol": { + "keccak256": "0x6e36e9b4b71de699c2f3f0d4e4d1aa0b35da99a26e8d5b91ef09ba234b4ef270", + "urls": [ + "bzz-raw://abfa467c53a0d60b4d09bf04aa952b1d1d44e5766fcc053aace078d7859b8419", + "dweb:/ipfs/QmebVTZpyNxYfKYTuLMywzEJTdc1Ca8ME4xm3kR9gQgToG" + ], + "license": "MIT" + }, + "lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol": { + "keccak256": "0x40c636b4572ff5f1dc50cf22097e93c0723ee14eff87e99ac2b02636eeca1250", + "urls": [ + "bzz-raw://9c7d1f5e15633ab912b74c2f57e24559e66b03232300d4b27ff0f25bc452ecad", + "dweb:/ipfs/QmYTJkc1cntYkKQ1Tu11nBcJLakiy93Tjytc4XHELo4GmR" + ], + "license": "MIT" + }, + "lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol": { + "keccak256": "0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3", + "urls": [ + "bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4", + "dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt" + ], + "license": "MIT" + }, + "lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol": { + "keccak256": "0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149", + "urls": [ + "bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c", + "dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a" + ], + "license": "MIT" + }, + "lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol": { + "keccak256": "0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a", + "urls": [ + "bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3", + "dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo" + ], + "license": "MIT" + }, + "lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol": { + "keccak256": "0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61", + "urls": [ + "bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354", + "dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce" + ], + "license": "MIT" + }, + "lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { + "keccak256": "0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b", + "urls": [ + "bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34", + "dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr" + ], + "license": "MIT" + }, + "lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol": { + "keccak256": "0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5", + "urls": [ + "bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354", + "dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol": { + "keccak256": "0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0", + "urls": [ + "bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51", + "dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol": { + "keccak256": "0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b", + "urls": [ + "bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d", + "dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/src/interfaces/IRegistry.sol": { + "keccak256": "0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3", + "urls": [ + "bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25", + "dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol": { + "keccak256": "0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385", + "urls": [ + "bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d", + "dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol": { + "keccak256": "0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4", + "urls": [ + "bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97", + "dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B" + ], + "license": "BUSL-1.1" + }, + "lib/eigenlayer-middleware/src/libraries/BN254.sol": { + "keccak256": "0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3", + "urls": [ + "bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae", + "dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki" + ], + "license": "MIT" + }, + "src/core/BatcherPaymentService.sol": { + "keccak256": "0xde76335b91ce8f21e0696b61926c8e9245e181c3cc9be663eaa5c507c746ffab", + "urls": [ + "bzz-raw://394f282424a2617eba561cd236291d4182925d8f8c14b1934ba9e1de402b3e6b", + "dweb:/ipfs/Qmb7QLrMexNpM6vhuQZbxQPyyVUmp3rAyRvUMpG1UZ4oyq" + ], + "license": null + }, + "src/core/BatcherPaymentServiceStorage.sol": { + "keccak256": "0x92fbdf600fa213d4e30b91d8da8840d81b9cc785d4e172ca8e12641141303f02", + "urls": [ + "bzz-raw://cd655f3850314df75dca1a6ccbe858f1d701e625264919ff90914657314a827c", + "dweb:/ipfs/QmR7RNYi3QEpr86s8pQic84KWxJFs7jwu5u8pHy2DaJnDj" + ], + "license": null + }, + "src/core/IAlignedLayerServiceManager.sol": { + "keccak256": "0xcf8e4bafd12a0ba8fa429c2944dd359714cb3e0679879a8ff90923cbaa814b8f", + "urls": [ + "bzz-raw://a6076ada95c77d0999b80c5eac3085aad5edc6ce18de7bf6e66261c35b5bf4fd", + "dweb:/ipfs/QmT64P4RaR4vCW238S1Z9sU9N1LJxoZGrq7tEtRgmbwghS" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "id": 125 +} diff --git a/batcher/aligned-sdk/src/communication/messaging.rs b/batcher/aligned-sdk/src/communication/messaging.rs index 3d6437054..6c64ea961 100644 --- a/batcher/aligned-sdk/src/communication/messaging.rs +++ b/batcher/aligned-sdk/src/communication/messaging.rs @@ -114,6 +114,15 @@ pub async fn send_messages( error!("Invalid replacement message!"); return Err(SubmitError::InvalidReplacementMessage); } + ValidityResponseMessage::AddToBatchError => { + error!("Error while pushing the entry to queue"); + return Err(SubmitError::AddToBatchError); + } + ValidityResponseMessage::EthRpcError => { + return Err(SubmitError::EthereumProviderError( + "Batcher experienced Eth RPC connection error".to_string(), + )); + } ValidityResponseMessage::InvalidPaymentServiceAddress(received_addr, expected_addr) => { error!( "Invalid payment service address, received: {}, expected: {}", diff --git a/batcher/aligned-sdk/src/core/errors.rs b/batcher/aligned-sdk/src/core/errors.rs index 78dfa8319..56327c451 100644 --- a/batcher/aligned-sdk/src/core/errors.rs +++ b/batcher/aligned-sdk/src/core/errors.rs @@ -90,6 +90,7 @@ pub enum SubmitError { InsufficientBalance, InvalidPaymentServiceAddress(H160, H160), BatchSubmissionFailed(String), + AddToBatchError, GenericError(String), } @@ -198,6 +199,7 @@ impl fmt::Display for SubmitError { ) } SubmitError::ProofQueueFlushed => write!(f, "Batch reset"), + SubmitError::AddToBatchError => write!(f, "Error while adding entry to batch"), } } } diff --git a/batcher/aligned-sdk/src/core/types.rs b/batcher/aligned-sdk/src/core/types.rs index 5ba32a3a8..a11bb75fb 100644 --- a/batcher/aligned-sdk/src/core/types.rs +++ b/batcher/aligned-sdk/src/core/types.rs @@ -1,3 +1,5 @@ +use std::str::FromStr; + use ethers::core::k256::ecdsa::SigningKey; use ethers::signers::Signer; use ethers::signers::Wallet; @@ -29,8 +31,6 @@ pub enum ProvingSystemId { Groth16Bn254, #[default] SP1, - Halo2KZG, - Halo2IPA, Risc0, } @@ -323,8 +323,10 @@ pub enum ValidityResponseMessage { InvalidProof, InvalidMaxFee, InvalidReplacementMessage, + AddToBatchError, ProofTooLarge, InsufficientBalance(Address), + EthRpcError, InvalidPaymentServiceAddress(Address, Address), } @@ -344,6 +346,22 @@ pub enum Network { HoleskyStage, } +impl FromStr for Network { + type Err = String; + + fn from_str(s: &str) -> Result { + match s.to_lowercase().as_str() { + "holesky" => Ok(Network::Holesky), + "holesky-stage" => Ok(Network::HoleskyStage), + "devnet" => Ok(Network::Devnet), + _ => Err( + "Invalid network, possible values are: \"holesky\", \"holesky-stage\", \"devnet\"" + .to_string(), + ), + } + } +} + #[cfg(test)] mod tests { use ethers::signers::LocalWallet; diff --git a/batcher/aligned-sdk/src/eth/batcher_payment_service.rs b/batcher/aligned-sdk/src/eth/batcher_payment_service.rs index c8b7a4e0d..b42f14fe2 100644 --- a/batcher/aligned-sdk/src/eth/batcher_payment_service.rs +++ b/batcher/aligned-sdk/src/eth/batcher_payment_service.rs @@ -28,23 +28,3 @@ pub async fn batcher_payment_service( Ok(BatcherPaymentService::new(contract_address, client)) } - -impl SignatureData { - pub fn new(signature: &Signature, nonce: U256, max_fee: U256) -> Self { - let mut signature_bytes = [0u8; 65]; - - signature.r.to_big_endian(&mut signature_bytes[0..32]); - - signature.s.to_big_endian(&mut signature_bytes[32..64]); - - signature_bytes[64] = signature.v as u8; - - let signature_bytes = Bytes::from(signature_bytes); - - SignatureData { - signature: signature_bytes, - nonce, - max_fee, - } - } -} diff --git a/batcher/aligned/Cargo.toml b/batcher/aligned/Cargo.toml index 4da271005..8f9a6a78a 100644 --- a/batcher/aligned/Cargo.toml +++ b/batcher/aligned/Cargo.toml @@ -1,20 +1,33 @@ [package] name = "aligned" -version = "0.1.0" +version = "0.8.0" edition = "2021" [dependencies] serde = { version = "1.0.201", features = ["derive"] } serde_json = "1.0.117" futures-util = "0.3.30" -tokio = { version = "1.37.0", features = ["io-std", "time", "macros", "rt", "rt-multi-thread", "sync"] } -tokio-tungstenite = { version = "0.23.1", features = ["rustls-tls-webpki-roots", "native-tls"] } +tokio = { version = "1.37.0", features = [ + "io-std", + "time", + "macros", + "rt", + "rt-multi-thread", + "sync", +] } +tokio-tungstenite = { version = "0.23.1", features = [ + "rustls-tls-webpki-roots", + "native-tls", +] } url = "2.5.0" log = "0.4.21" env_logger = "0.11.3" clap = { version = "4.5.4", features = ["derive"] } -lambdaworks-crypto = { version = "0.7.0", features = ["serde"] } -ethers = { tag = "v2.0.15-fix-reconnections", features = ["ws", "rustls"], git = "https://github.com/yetanotherco/ethers-rs.git" } -aligned-sdk = { path = "../aligned-sdk"} +lambdaworks-crypto = { git = "https://github.com/lambdaclass/lambdaworks.git", rev = "efd46f0b0aea3aa95d94bba7de86cb96611b40d3", features = ["serde"] } +ethers = { tag = "v2.0.15-fix-reconnections", features = [ + "ws", + "rustls", +], git = "https://github.com/yetanotherco/ethers-rs.git" } +aligned-sdk = { path = "../aligned-sdk" } rpassword = "7.3.1" -sha3 = { version = "0.10.8"} +sha3 = { version = "0.10.8" } diff --git a/batcher/aligned/send_burst_tasks.sh b/batcher/aligned/send_burst_tasks.sh index 25160bf13..f46464aa6 100755 --- a/batcher/aligned/send_burst_tasks.sh +++ b/batcher/aligned/send_burst_tasks.sh @@ -28,6 +28,6 @@ while true do # Run in backaground to be able to run onece per second, and not wait for the previous one to finish . ./batcher/aligned/generate_proof_and_send.sh $counter $burst & - sleep 1 + sleep 3 counter=$((counter + 1)) done diff --git a/batcher/aligned/src/main.rs b/batcher/aligned/src/main.rs index a9bf57ba4..f2f62f1a6 100644 --- a/batcher/aligned/src/main.rs +++ b/batcher/aligned/src/main.rs @@ -227,10 +227,6 @@ pub enum ProvingSystemArg { Groth16Bn254, #[clap(name = "SP1")] SP1, - #[clap(name = "Halo2KZG")] - Halo2KZG, - #[clap(name = "Halo2IPA")] - Halo2IPA, #[clap(name = "Risc0")] Risc0, } @@ -244,8 +240,6 @@ impl From for ProvingSystemId { ProvingSystemArg::GnarkPlonkBn254 => ProvingSystemId::GnarkPlonkBn254, ProvingSystemArg::Groth16Bn254 => ProvingSystemId::Groth16Bn254, ProvingSystemArg::SP1 => ProvingSystemId::SP1, - ProvingSystemArg::Halo2KZG => ProvingSystemId::Halo2KZG, - ProvingSystemArg::Halo2IPA => ProvingSystemId::Halo2IPA, ProvingSystemArg::Risc0 => ProvingSystemId::Risc0, } } @@ -517,9 +511,7 @@ fn verification_data_from_args(args: &SubmitArgs) -> Result { verification_key = Some(read_file_option( diff --git a/common/proving_systems.go b/common/proving_systems.go index 28a0630a3..023aa3eae 100644 --- a/common/proving_systems.go +++ b/common/proving_systems.go @@ -15,13 +15,11 @@ const ( GnarkPlonkBn254 Groth16Bn254 SP1 - Halo2KZG - Halo2IPA Risc0 ) func (t *ProvingSystemId) String() string { - return [...]string{"GnarkPlonkBls12_381", "GnarkPlonkBn254", "Groth16Bn254", "SP1", "Halo2IPA"}[*t] + return [...]string{"GnarkPlonkBls12_381", "GnarkPlonkBn254", "Groth16Bn254", "SP1"}[*t] } func ProvingSystemIdFromString(provingSystem string) (ProvingSystemId, error) { @@ -34,10 +32,6 @@ func ProvingSystemIdFromString(provingSystem string) (ProvingSystemId, error) { return Groth16Bn254, nil case "SP1": return SP1, nil - case "Halo2KZG": - return Halo2KZG, nil - case "Halo2IPA": - return Halo2IPA, nil case "Risc0": return Risc0, nil } @@ -55,10 +49,6 @@ func ProvingSystemIdToString(provingSystem ProvingSystemId) (string, error) { return "Groth16Bn254", nil case SP1: return "SP1", nil - case Halo2KZG: - return "Halo2KZG", nil - case Halo2IPA: - return "Halo2IPA", nil case Risc0: return "Risc0", nil } @@ -113,10 +103,6 @@ func (s *ProvingSystemId) UnmarshalCBOR(data []byte) error { *s = Groth16Bn254 case "SP1": *s = SP1 - case "Halo2KZG": - *s = Halo2KZG - case "Halo2IPA": - *s = Halo2IPA case "Risc0": *s = Risc0 } diff --git a/config-files/config-aggregator.yaml b/config-files/config-aggregator.yaml index 5bd1fb8cd..cb9f279a6 100644 --- a/config-files/config-aggregator.yaml +++ b/config-files/config-aggregator.yaml @@ -34,6 +34,7 @@ aggregator: avs_service_manager_address: 0xc3e53F4d16Ae77Db1c982e75a937B9f60FE63690 enable_metrics: true metrics_ip_port_address: localhost:9091 + telemetry_ip_port_address: localhost:4001 ## Operator Configurations # operator: # aggregator_rpc_server_ip_port_address: localhost:8090 diff --git a/config-files/config-operator-1.yaml b/config-files/config-operator-1.yaml index 28e99afd4..0a1b1d552 100644 --- a/config-files/config-operator-1.yaml +++ b/config-files/config-operator-1.yaml @@ -1,39 +1,40 @@ # Common variables for all the services # 'production' only prints info and above. 'development' also prints debug -environment: "development" -aligned_layer_deployment_config_file_path: "./contracts/script/output/devnet/alignedlayer_deployment_output.json" -eigen_layer_deployment_config_file_path: "./contracts/script/output/devnet/eigenlayer_deployment_output.json" -eth_rpc_url: "http://localhost:8545" -eth_rpc_url_fallback: "http://localhost:8545" -eth_ws_url: "ws://localhost:8545" -eth_ws_url_fallback: "ws://localhost:8545" -eigen_metrics_ip_port_address: "localhost:9090" +environment: 'development' +aligned_layer_deployment_config_file_path: './contracts/script/output/devnet/alignedlayer_deployment_output.json' +eigen_layer_deployment_config_file_path: './contracts/script/output/devnet/eigenlayer_deployment_output.json' +eth_rpc_url: 'http://localhost:8545' +eth_rpc_url_fallback: 'http://localhost:8545' +eth_ws_url: 'ws://localhost:8545' +eth_ws_url_fallback: 'ws://localhost:8545' +eigen_metrics_ip_port_address: 'localhost:9090' ## ECDSA Configurations ecdsa: - private_key_store_path: "config-files/devnet/keys/operator-1.ecdsa.key.json" - private_key_store_password: "" + private_key_store_path: 'config-files/devnet/keys/operator-1.ecdsa.key.json' + private_key_store_password: '' ## BLS Configurations bls: - private_key_store_path: "config-files/devnet/keys/operator-1.bls.key.json" - private_key_store_password: "" + private_key_store_path: 'config-files/devnet/keys/operator-1.bls.key.json' + private_key_store_password: '' ## Operator Configurations operator: aggregator_rpc_server_ip_port_address: localhost:8090 - operator_tracker_ip_port_address: http://localhost:3030 + operator_tracker_ip_port_address: http://localhost:4001 address: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 earnings_receiver_address: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 - delegation_approver_address: "0x0000000000000000000000000000000000000000" + delegation_approver_address: '0x0000000000000000000000000000000000000000' staker_opt_out_window_blocks: 0 - metadata_url: "https://yetanotherco.github.io/operator_metadata/metadata.json" + metadata_url: 'https://yetanotherco.github.io/operator_metadata/metadata.json' enable_metrics: true metrics_ip_port_address: localhost:9092 max_batch_size: 268435456 # 256 MiB + last_processed_batch_filepath: 'config-files/operator-1.last_processed_batch.json' # Operators variables needed for register it in EigenLayer -el_delegation_manager_address: "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9" +el_delegation_manager_address: '0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9' private_key_store_path: config-files/devnet/keys/operator-1.ecdsa.key.json bls_private_key_store_path: config-files/devnet/keys/operator-1.bls.key.json signer_type: local_keystore diff --git a/config-files/config-operator-2.yaml b/config-files/config-operator-2.yaml index a02304ee0..8a7c6d801 100644 --- a/config-files/config-operator-2.yaml +++ b/config-files/config-operator-2.yaml @@ -1,37 +1,38 @@ # Common variables for all the services # 'production' only prints info and above. 'development' also prints debug -environment: "development" -aligned_layer_deployment_config_file_path: "./contracts/script/output/devnet/alignedlayer_deployment_output.json" -eigen_layer_deployment_config_file_path: "./contracts/script/output/devnet/eigenlayer_deployment_output.json" -eth_rpc_url: "http://localhost:8545" -eth_rpc_url_fallback: "http://localhost:8545" -eth_ws_url: "ws://localhost:8545" -eth_ws_url_fallback: "ws://localhost:8545" -eigen_metrics_ip_port_address: "localhost:9090" +environment: 'development' +aligned_layer_deployment_config_file_path: './contracts/script/output/devnet/alignedlayer_deployment_output.json' +eigen_layer_deployment_config_file_path: './contracts/script/output/devnet/eigenlayer_deployment_output.json' +eth_rpc_url: 'http://localhost:8545' +eth_rpc_url_fallback: 'http://localhost:8545' +eth_ws_url: 'ws://localhost:8545' +eth_ws_url_fallback: 'ws://localhost:8545' +eigen_metrics_ip_port_address: 'localhost:9090' ## ECDSA Configurations ecdsa: - private_key_store_path: "config-files/devnet/keys/operator-2.ecdsa.key.json" - private_key_store_password: "" + private_key_store_path: 'config-files/devnet/keys/operator-2.ecdsa.key.json' + private_key_store_password: '' ## BLS Configurations bls: - private_key_store_path: "config-files/devnet/keys/operator-2.bls.key.json" - private_key_store_password: "" + private_key_store_path: 'config-files/devnet/keys/operator-2.bls.key.json' + private_key_store_password: '' ## Operator Configurations operator: aggregator_rpc_server_ip_port_address: localhost:8090 - operator_tracker_ip_port_address: http://localhost:3030 + operator_tracker_ip_port_address: http://localhost:4001 address: 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC earnings_receiver_address: 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC - delegation_approver_address: "0x0000000000000000000000000000000000000000" + delegation_approver_address: '0x0000000000000000000000000000000000000000' staker_opt_out_window_blocks: 0 - metadata_url: "https://yetanotherco.github.io/operator_metadata/metadata.json" + metadata_url: 'https://yetanotherco.github.io/operator_metadata/metadata.json' max_batch_size: 268435456 # 256 MiB + last_processed_batch_filepath: 'config-files/operator-2.last_processed_batch.json' # Operators variables needed for register it in EigenLayer -el_delegation_manager_address: "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9" +el_delegation_manager_address: '0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9' private_key_store_path: config-files/devnet/keys/operator-2.ecdsa.key.json bls_private_key_store_path: config-files/devnet/keys/operator-2.bls.key.json signer_type: local_keystore diff --git a/config-files/config-operator-3.yaml b/config-files/config-operator-3.yaml index b8ed7fe87..a844e9636 100644 --- a/config-files/config-operator-3.yaml +++ b/config-files/config-operator-3.yaml @@ -1,37 +1,38 @@ # Common variables for all the services # 'production' only prints info and above. 'development' also prints debug -environment: "development" -aligned_layer_deployment_config_file_path: "./contracts/script/output/devnet/alignedlayer_deployment_output.json" -eigen_layer_deployment_config_file_path: "./contracts/script/output/devnet/eigenlayer_deployment_output.json" -eth_rpc_url: "http://localhost:8545" -eth_rpc_url_fallback: "http://localhost:8545" -eth_ws_url: "ws://localhost:8545" -eth_ws_url_fallback: "ws://localhost:8545" -eigen_metrics_ip_port_address: "localhost:9090" +environment: 'development' +aligned_layer_deployment_config_file_path: './contracts/script/output/devnet/alignedlayer_deployment_output.json' +eigen_layer_deployment_config_file_path: './contracts/script/output/devnet/eigenlayer_deployment_output.json' +eth_rpc_url: 'http://localhost:8545' +eth_rpc_url_fallback: 'http://localhost:8545' +eth_ws_url: 'ws://localhost:8545' +eth_ws_url_fallback: 'ws://localhost:8545' +eigen_metrics_ip_port_address: 'localhost:9090' ## ECDSA Configurations ecdsa: - private_key_store_path: "config-files/devnet/keys/operator-3.ecdsa.key.json" - private_key_store_password: "" + private_key_store_path: 'config-files/devnet/keys/operator-3.ecdsa.key.json' + private_key_store_password: '' ## BLS Configurations bls: - private_key_store_path: "config-files/devnet/keys/operator-3.bls.key.json" - private_key_store_password: "" + private_key_store_path: 'config-files/devnet/keys/operator-3.bls.key.json' + private_key_store_password: '' ## Operator Configurations operator: aggregator_rpc_server_ip_port_address: localhost:8090 - operator_tracker_ip_port_address: http://localhost:3030 + operator_tracker_ip_port_address: http://localhost:4001 address: 0x90F79bf6EB2c4f870365E785982E1f101E93b906 earnings_receiver_address: 0x90F79bf6EB2c4f870365E785982E1f101E93b906 - delegation_approver_address: "0x0000000000000000000000000000000000000000" + delegation_approver_address: '0x0000000000000000000000000000000000000000' staker_opt_out_window_blocks: 0 - metadata_url: "https://yetanotherco.github.io/operator_metadata/metadata.json" + metadata_url: 'https://yetanotherco.github.io/operator_metadata/metadata.json' max_batch_size: 268435456 # 256 MiB + last_processed_batch_filepath: 'config-files/operator-3.last_processed_batch.json' # Operators variables needed for register it in EigenLayer -el_delegation_manager_address: "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9" +el_delegation_manager_address: '0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9' private_key_store_path: config-files/devnet/keys/operator-3.ecdsa.key.json bls_private_key_store_path: config-files/devnet/keys/operator-3.bls.key.json signer_type: local_keystore diff --git a/config-files/config-operator.yaml b/config-files/config-operator.yaml index 2c9ed7a02..eedcecb80 100644 --- a/config-files/config-operator.yaml +++ b/config-files/config-operator.yaml @@ -1,33 +1,34 @@ # Common variables for all the services # 'production' only prints info and above. 'development' also prints debug -environment: "production" -aligned_layer_deployment_config_file_path: "./contracts/script/output/holesky/alignedlayer_deployment_output.json" -eigen_layer_deployment_config_file_path: "./contracts/script/output/holesky/eigenlayer_deployment_output.json" -eth_rpc_url: "https://ethereum-holesky-rpc.publicnode.com" -eth_rpc_url_fallback: "https://ethereum-holesky-rpc.publicnode.com" -eth_ws_url: "wss://ethereum-holesky-rpc.publicnode.com" -eth_ws_url_fallback: "wss://ethereum-holesky-rpc.publicnode.com" -eigen_metrics_ip_port_address: "localhost:9090" +environment: 'production' +aligned_layer_deployment_config_file_path: './contracts/script/output/holesky/alignedlayer_deployment_output.json' +eigen_layer_deployment_config_file_path: './contracts/script/output/holesky/eigenlayer_deployment_output.json' +eth_rpc_url: 'https://ethereum-holesky-rpc.publicnode.com' +eth_rpc_url_fallback: 'https://ethereum-holesky-rpc.publicnode.com' +eth_ws_url: 'wss://ethereum-holesky-rpc.publicnode.com' +eth_ws_url_fallback: 'wss://ethereum-holesky-rpc.publicnode.com' +eigen_metrics_ip_port_address: 'localhost:9090' ## ECDSA Configurations ecdsa: - private_key_store_path: "" - private_key_store_password: "" + private_key_store_path: '' + private_key_store_password: '' ## BLS Configurations bls: - private_key_store_path: "" - private_key_store_password: "" + private_key_store_path: '' + private_key_store_password: '' ## Operator Configurations operator: aggregator_rpc_server_ip_port_address: aggregator.alignedlayer.com:8090 operator_tracker_ip_port_address: https://holesky.tracker.alignedlayer.com - address: "" - earnings_receiver_address: "" #Can be the same as the operator. - delegation_approver_address: "0x0000000000000000000000000000000000000000" + address: '' + earnings_receiver_address: '' #Can be the same as the operator. + delegation_approver_address: '0x0000000000000000000000000000000000000000' staker_opt_out_window_blocks: 0 - metadata_url: "https://yetanotherco.github.io/operator_metadata/metadata.json" + metadata_url: 'https://yetanotherco.github.io/operator_metadata/metadata.json' enable_metrics: true metrics_ip_port_address: localhost:9092 max_batch_size: 268435456 # 256 MiB + last_processed_batch_filepath: 'config-files/operator.last_processed_batch.json' diff --git a/config-files/config.yaml b/config-files/config.yaml index b99bf0b6f..f9f3be1e7 100644 --- a/config-files/config.yaml +++ b/config-files/config.yaml @@ -1,23 +1,23 @@ # Common variables for all the services # 'production' only prints info and above. 'development' also prints debug -environment: "production" -aligned_layer_deployment_config_file_path: "./contracts/script/output/devnet/alignedlayer_deployment_output.json" -eigen_layer_deployment_config_file_path: "./contracts/script/output/devnet/eigenlayer_deployment_output.json" -eth_rpc_url: "http://localhost:8545" -eth_rpc_url_fallback: "http://localhost:8545" -eth_ws_url: "ws://localhost:8545" -eth_ws_url_fallback: "ws://localhost:8545" -eigen_metrics_ip_port_address: "localhost:9090" +environment: 'production' +aligned_layer_deployment_config_file_path: './contracts/script/output/devnet/alignedlayer_deployment_output.json' +eigen_layer_deployment_config_file_path: './contracts/script/output/devnet/eigenlayer_deployment_output.json' +eth_rpc_url: 'http://localhost:8545' +eth_rpc_url_fallback: 'http://localhost:8545' +eth_ws_url: 'ws://localhost:8545' +eth_ws_url_fallback: 'ws://localhost:8545' +eigen_metrics_ip_port_address: 'localhost:9090' ## ECDSA Configurations ecdsa: - private_key_store_path: "config-files/anvil.ecdsa.key.json" - private_key_store_password: "" + private_key_store_path: 'config-files/anvil.ecdsa.key.json' + private_key_store_password: '' ## BLS Configurations bls: - private_key_store_path: "config-files/anvil.bls.key.json" - private_key_store_password: "" + private_key_store_path: 'config-files/anvil.bls.key.json' + private_key_store_password: '' ## Batcher configurations batcher: @@ -39,17 +39,18 @@ aggregator: ## Operator Configurations operator: aggregator_rpc_server_ip_port_address: localhost:8090 - operator_tracker_ip_port_address: http://localhost:3030 + operator_tracker_ip_port_address: http://localhost:4001 address: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 earnings_receiver_address: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 - delegation_approver_address: "0x0000000000000000000000000000000000000000" + delegation_approver_address: '0x0000000000000000000000000000000000000000' staker_opt_out_window_blocks: 0 - metadata_url: "https://yetanotherco.github.io/operator_metadata/metadata.json" + metadata_url: 'https://yetanotherco.github.io/operator_metadata/metadata.json' enable_metrics: true metrics_ip_port_address: localhost:9092 max_batch_size: 268435456 # 256 MiB + last_processed_batch_filepath: config-files/operator.last_processed_batch.json # Operators variables needed for register it in EigenLayer -el_delegation_manager_address: "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9" +el_delegation_manager_address: '0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9' private_key_store_path: config-files/anvil.ecdsa.key.json bls_private_key_store_path: config-files/anvil.bls.key.json signer_type: local_keystore diff --git a/contracts/script/deploy/BatcherPaymentServiceDeployer.s.sol b/contracts/script/deploy/BatcherPaymentServiceDeployer.s.sol index 8f9c8691f..f65db8dcd 100644 --- a/contracts/script/deploy/BatcherPaymentServiceDeployer.s.sol +++ b/contracts/script/deploy/BatcherPaymentServiceDeployer.s.sol @@ -29,11 +29,6 @@ contract BatcherPaymentServiceDeployer is Script { ".permissions.owner" ); - bytes32 noncedVerificationDataTypeHash = stdJson.readBytes32( - config_data, - ".eip712.noncedVerificationDataTypeHash" - ); - vm.startBroadcast(); BatcherPaymentService batcherPaymentService = new BatcherPaymentService(); @@ -41,11 +36,10 @@ contract BatcherPaymentServiceDeployer is Script { ERC1967Proxy proxy = new ERC1967Proxy( address(batcherPaymentService), abi.encodeWithSignature( - "initialize(address,address,address,bytes32)", + "initialize(address,address,address)", IAlignedLayerServiceManager(alignedLayerServiceManager), batcherPaymentServiceOwner, - batcherWallet, - noncedVerificationDataTypeHash + batcherWallet ) ); diff --git a/contracts/script/deploy/config/devnet/batcher-payment-service.devnet.config.json b/contracts/script/deploy/config/devnet/batcher-payment-service.devnet.config.json index 03d903564..425f86060 100644 --- a/contracts/script/deploy/config/devnet/batcher-payment-service.devnet.config.json +++ b/contracts/script/deploy/config/devnet/batcher-payment-service.devnet.config.json @@ -10,8 +10,5 @@ }, "permissions": { "owner": "0x14dC79964da2C08b23698B3D3cc7Ca32193d9955" - }, - "eip712": { - "noncedVerificationDataTypeHash": "41817b5c5b0c3dcda70ccb43ba175fdcd7e586f9e0484422a2c6bba678fdf4a3" } } diff --git a/contracts/script/deploy/config/holesky/batcher-payment-service.holesky.config.json b/contracts/script/deploy/config/holesky/batcher-payment-service.holesky.config.json index 45b479530..81452956d 100644 --- a/contracts/script/deploy/config/holesky/batcher-payment-service.holesky.config.json +++ b/contracts/script/deploy/config/holesky/batcher-payment-service.holesky.config.json @@ -9,8 +9,5 @@ }, "permissions": { "owner": "" - }, - "eip712": { - "noncedVerificationDataTypeHash": "41817b5c5b0c3dcda70ccb43ba175fdcd7e586f9e0484422a2c6bba678fdf4a3" } } diff --git a/contracts/script/upgrade/BatcherPaymentServiceUpgradeAddTypeHash.s.sol b/contracts/script/upgrade/BatcherPaymentServiceUpgradeAddTypeHash.s.sol deleted file mode 100644 index 0140d6ba6..000000000 --- a/contracts/script/upgrade/BatcherPaymentServiceUpgradeAddTypeHash.s.sol +++ /dev/null @@ -1,56 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.12; -import {BatcherPaymentService} from "../../src/core/BatcherPaymentService.sol"; - -import "forge-std/Script.sol"; -import "forge-std/StdJson.sol"; - -contract BatcherPaymentServiceUpgradeAddTypeHash is Script { - function run( - string memory alignedLayerDeploymentFilePath, - string memory batcherPaymentServiceConfigFilePath - ) external returns (address, address) { - string memory aligned_deployment_file = vm.readFile( - alignedLayerDeploymentFilePath - ); - - string memory batcherPaymentServiceConfigFile = vm.readFile( - batcherPaymentServiceConfigFilePath - ); - - bytes32 noncedVerificationDataTypeHash = stdJson.readBytes32( - batcherPaymentServiceConfigFile, - ".eip712.noncedVerificationDataTypeHash" - ); - - vm.startBroadcast(); - - BatcherPaymentService BatcherPaymentServiceProxy = BatcherPaymentService( - payable( - stdJson.readAddress( - aligned_deployment_file, - ".addresses.batcherPaymentService" - ) - ) - ); - - BatcherPaymentService newBatcherPaymentServiceImplementation = new BatcherPaymentService(); - BatcherPaymentServiceProxy.upgradeToAndCall( - address(newBatcherPaymentServiceImplementation), - "" - ); - - vm.stopBroadcast(); - - vm.startBroadcast(); - - BatcherPaymentServiceProxy.initializeNoncedVerificationDataTypeHash( - noncedVerificationDataTypeHash - ); - - return ( - address(BatcherPaymentServiceProxy), - address(newBatcherPaymentServiceImplementation) - ); - } -} diff --git a/contracts/scripts/anvil/state/alignedlayer-deployed-anvil-state.json b/contracts/scripts/anvil/state/alignedlayer-deployed-anvil-state.json index 00f47431d..e56500790 100644 --- a/contracts/scripts/anvil/state/alignedlayer-deployed-anvil-state.json +++ b/contracts/scripts/anvil/state/alignedlayer-deployed-anvil-state.json @@ -1 +1 @@ -{"block":{"number":"0xe","coinbase":"0x0000000000000000000000000000000000000000","timestamp":"0x66fa9fd9","gas_limit":"0x1c9c380","basefee":"0xd3a1a95","difficulty":"0x0","prevrandao":"0xfbc0a30f4385d15ccd29a62b709c465ade03bb831137b25648215234597066a7","blob_excess_gas_and_price":{"excess_blob_gas":0,"blob_gasprice":1}},"accounts":{"0x0000000000000000000000000000000000000000":{"nonce":0,"balance":"0x368e325","code":"0x","storage":{}},"0x0165878a594ca255338adfa4d48449f69242eb8f":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000066":"0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000000000000000000c9":"0x94af000f6f71feb2b8401e668d95fd208038580e89d240930f90ba827aa34858","0x00000000000000000000000000000000000000000000000000000000000000cb":"0x000003e80000000000001c2018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad4","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0x09635f643e140090a9a8dcd712ed6285858cebef":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047c565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d1565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b9150604084013590509250925092565b60006020828403121561048e57600080fd5b610497826103fa565b9392505050565b600080604083850312156104b157600080fd5b6104ba836103fa565b91506104c8602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122020d7e8b980aa0c2b46b040d513e5ae1f916c9610cc2589a32d3485f141c4d93e64736f6c63430008180033","storage":{}},"0x0b306bf915c4d645ff596e518faf3f9669b97016":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613257565b610caa565b61033d61049a3660046132b7565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e3565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b16105143660046132fe565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613321565b611469565b6102b1610552366004613356565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613356565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc36600461339f565b61156b565b61033d6106cf366004613412565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342d565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344a565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613494565b61093b5760405162461bcd60e51b815260040161089e906134b1565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134f9565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110610b8957610b89613567565b9050602002810190610b9b919061357d565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c3565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a908390613709565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371c565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134f9565b600260975403610cf45760405162461bcd60e51b815260040161089e90613530565b6002609755600060ca610d0a60208601866132e3565b63ffffffff1681548110610d2057610d20613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a088018861372f565b90508110156110445736610e4f60e0890189613780565b83818110610e5f57610e5f613567565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137ca565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134f9565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137dd565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613494565b6113ea5760405162461bcd60e51b815260040161089e906134b1565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e3565b63ffffffff168154811061149457611494613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e5600184613801565b63ffffffff16815481106116fb576116fb613567565b906000526020600020906002020160000154036117245761171d600182613801565b9392505050565b8061172e8161381e565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342d565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344a565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134f9565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110611a3257611a32613567565b9050602002810190611a44919061357d565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c3565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac3908390613709565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371c565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613780565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e3565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e3565b611eda9190613854565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e3565b611fb59190613854565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e3565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137ca565b111580156120ec57506120bc60808201606083016132e3565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d001642613709565b6121a660808301606084016132e3565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613780565b905081101561245357600061224d8480613780565b8381811061225d5761225d613567565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613494565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c083018361372f565b905061255e60a084018461372f565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613780565b905061260460c084018461372f565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e3565b6126af6040860186613877565b86606001612b77565b60005b6126c860a084018461372f565b90508110156124535761276260808401356126e660a086018661372f565b848181106126f6576126f6613567565b905060200201602081019061270b91906132e3565b61271860c087018761372f565b8581811061272857612728613567565b905060200281019061273a9190613877565b61274760e0890189613780565b8781811061275757612757613567565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613494565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138be565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138be565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f6565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613908565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613908565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b613092602082613709565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e919061391c565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff808211156131fa57600080fd5b818501915085601f83011261320e57600080fd5b81358181111561321d57600080fd5b8660208260051b850101111561323257600080fd5b60209290920196919550909350505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326a57600080fd5b823567ffffffffffffffff81111561328157600080fd5b61328d85828601613244565b9250506020830135613149816130db565b803563ffffffff811681146132b257600080fd5b919050565b600080604083850312156132ca57600080fd5b823591506132da6020840161329e565b90509250929050565b6000602082840312156132f557600080fd5b61171d8261329e565b60006020828403121561331057600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333357600080fd5b813567ffffffffffffffff81111561334a57600080fd5b612e4b84828501613244565b6000806040838503121561336957600080fd5b8235613374816130db565b946020939093013593505050565b80356132b2816130db565b803561ffff811681146132b257600080fd5b60008060008060008060c087890312156133b857600080fd5b86356133c3816130db565b955060208701356133d3816130db565b94506040870135935060608701356133ea816130db565b92506133f86080880161329e565b915061340660a0880161338d565b90509295509295509295565b60006020828403121561342457600080fd5b61171d8261338d565b60006020828403121561343f57600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a657600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359357600080fd5b9190910192915050565b818352600060208085019450826000805b868110156136025782356135c1816130db565b6001600160a01b03168852828401356bffffffffffffffffffffffff81168082146135ea578384fd5b898601525060409788019792909201916001016135ae565b50959695505050505050565b60008135601e1983360301811261362457600080fd5b820160208101903567ffffffffffffffff81111561364157600080fd5b8060061b360382131561365357600080fd5b60a0855261366560a08601828461359d565b91505061367460208401613382565b6001600160a01b03166020850152604083810135908501526136986060840161329e565b63ffffffff1660608501526136af6080840161329e565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136ea606083018461360e565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f3565b60208152600061171d602083018461360e565b6000808335601e1984360301811261374657600080fd5b83018035915067ffffffffffffffff82111561376157600080fd5b6020019150600581901b360382131561377957600080fd5b9250929050565b6000808335601e1984360301811261379757600080fd5b83018035915067ffffffffffffffff8211156137b257600080fd5b6020019150600681901b360382131561377957600080fd5b81810381811115610a7757610a776136f3565b63ffffffff8181168382160190808211156137fa576137fa6136f3565b5092915050565b63ffffffff8281168282160390808211156137fa576137fa6136f3565b600063ffffffff821680613834576138346136f3565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061386b5761386b61383e565b92169190910692915050565b6000808335601e1984360301811261388e57600080fd5b83018035915067ffffffffffffffff8211156138a957600080fd5b60200191503681900382131561377957600080fd5b6000826138cd576138cd61383e565b500490565b60005b838110156138ed5781810151838201526020016138d5565b50506000910152565b600082516135938184602087016138d2565b6000826139175761391761383e565b500690565b602081526000825180602084015261393b8160408501602087016138d2565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a24fa288bd4bdcb1a7a813fb6a838dbea7b30eebacde1df7b8b1ffae0b140b2b64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b3d565b610a64565b61021e610a9c565b61032461030f366004612b76565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612b99565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bc7565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c08565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612cd1565b610d50565b61021e6104b1366004612d13565b610ec4565b61021e6104c4366004612d64565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612db7565b610fe1565b61021e6104fd366004612d13565b611019565b61021e610510366004612de3565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bc7565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e4f565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e6c565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eb6565b6106c15760405162461bcd60e51b815260040161062490612ed3565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f1b565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eb6565b610b245760405162461bcd60e51b815260040161062490612ed3565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f85565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612fe3565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612fe3565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f1b565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612fe3565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612fe3565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612fe3565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612fe3565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f85565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f85565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f1b565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612fe3565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612fe3565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612fe3565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612fe3565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612fe3565b90506020020160208101906113619190612ff9565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e4f565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e6c565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906117839086908690600401613066565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c4919061307f565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130a9565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130d8565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612fe3565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130eb565b815481106122e8576122e8612fe3565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612fe3565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e6130fe565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613114565b036124c05750565b60018160048111156124d4576124d4613114565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613114565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613114565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613114565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eb6565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130d8565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061312a565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b81526004016106249190613146565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff80821115612aa357600080fd5b818901915089601f830112612ab757600080fd5b813581811115612ac957612ac9612a1e565b604051601f8201601f19908116603f01168101908382118183101715612af157612af1612a1e565b816040528281528c6020848701011115612b0a57600080fd5b8260208601602083013760006020848301015280955050505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5057600080fd5b8235612b5b816129d3565b91506020830135612b6b81612b2f565b809150509250929050565b600060208284031215612b8857600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bac57600080fd5b8235612bb7816129d3565b91506020830135612b6b816129d3565b600080600060608486031215612bdc57600080fd5b8335612be7816129d3565b92506020840135612bf7816129d3565b929592945050506040919091013590565b604080825283519082018190526000906020906060840190828701845b82811015612c4a5781516001600160a01b031684529284019290840190600101612c25565b5050508381038285015284518082528583019183019060005b81811015612c7f57835183529284019291840191600101612c63565b5090979650505050505050565b60008083601f840112612c9e57600080fd5b50813567ffffffffffffffff811115612cb657600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612ce457600080fd5b823567ffffffffffffffff811115612cfb57600080fd5b612d0785828601612c8c565b90969095509350505050565b60008060008060808587031215612d2957600080fd5b8435612d34816129d3565b93506020850135612d44816129d3565b92506040850135612d54816129d3565b9396929550929360600135925050565b60008060008060808587031215612d7a57600080fd5b8435612d85816129d3565b93506020850135612d95816129d3565b9250604085013591506060850135612dac816129d3565b939692955090935050565b60008060408385031215612dca57600080fd5b8235612dd5816129d3565b946020939093013593505050565b60008060008060408587031215612df957600080fd5b843567ffffffffffffffff80821115612e1157600080fd5b612e1d88838901612c8c565b90965094506020870135915080821115612e3657600080fd5b50612e4387828801612c8c565b95989497509550505050565b600060208284031215612e6157600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612ec857600080fd5b8151611d4581612b2f565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561300b57600080fd5b8135611d4581612b2f565b60005b83811015613031578181015183820152602001613019565b50506000910152565b60008151808452613052816020860160208601613016565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461303a565b60006020828403121561309157600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130bb57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130c2565b818103818111156121e6576121e66130c2565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161313c818460208701613016565b9190910192915050565b602081526000611d45602083018461303a56fea26469706673582212208f93c215613625117caec9113257c8859da3eb85d10c3f4716517f3a64d0f80c64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x14dc79964da2c08b23698b3d3cc7ca32193d9955":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x15d34aaf54267db7d7c367839aaf71a00a2c6a65":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8":{"nonce":1,"balance":"0xde0b6b3a7640000","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000000000000000000000000000000000000000000cb":"0x00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d","0x8381bda9e63c8f87d23ed12b247ddf76dabbcf462f387619b957f4bfb071aada":"0x0000000000000000000000000000000000000000000000000de0b6b3a7640000","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}},"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000066":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000097":"0x0000000000000000000000000000000000000000000000000000000000000000","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0x23618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061016a5760003560e01c8063715018a6116100d15780638da5cb5b1161008a578063c891091311610064578063c8910913146104af578063df5ffbc614610506578063f2fde38b14610526578063f83d08ba1461054657600080fd5b80638da5cb5b1461045c578063953ef8071461047a578063a69df4b51461049a57600080fd5b8063715018a6146103be57806373e289d0146103d357806379225985146103e95780637cb3805a146103ff5780638456cb591461041f57806384b0196e1461043457600080fd5b80634f1ef286116101235780634f1ef286146102fb57806352be56291461030e57806352d1902d1461032e57806358b96e27146103435780635c975abb1461037b57806363acc14d1461039e57600080fd5b806317d89c4e146101e95780632df4e21e146102355780632e1a7d4d1461026b5780633659cfe61461028d5780633f4ba83a146102ad5780634d5431ea146102c257600080fd5b366101e45733600090815260fd60205260408120805434929061018e908490612179565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770906101da9034815260200190565b60405180910390a2005b600080fd5b3480156101f557600080fd5b506102226102043660046121a1565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561024157600080fd5b506102226102503660046121a1565b6001600160a01b0316600090815260fd602052604090205490565b34801561027757600080fd5b5061028b6102863660046121be565b61055b565b005b34801561029957600080fd5b5061028b6102a83660046121a1565b610698565b3480156102b957600080fd5b5061028b610777565b3480156102ce57600080fd5b506102226102dd3660046121a1565b6001600160a01b0316600090815260fd602052604090206001015490565b61028b6103093660046121ed565b610789565b34801561031a57600080fd5b5061028b6103293660046121be565b610859565b34801561033a57600080fd5b506102226108fd565b34801561034f57600080fd5b5060fc54610363906001600160a01b031681565b6040516001600160a01b03909116815260200161022c565b34801561038757600080fd5b5060655460ff16604051901515815260200161022c565b3480156103aa57600080fd5b5061028b6103b93660046122b9565b6109b0565b3480156103ca57600080fd5b5061028b610bb1565b3480156103df57600080fd5b50610222610e1081565b3480156103f557600080fd5b5061022260fe5481565b34801561040b57600080fd5b5061028b61041a3660046121be565b610bc3565b34801561042b57600080fd5b5061028b610bd0565b34801561044057600080fd5b50610449610be0565b60405161022c979695949392919061235a565b34801561046857600080fd5b506033546001600160a01b0316610363565b34801561048657600080fd5b5060fb54610363906001600160a01b031681565b3480156104a657600080fd5b5061028b610c26565b3480156104bb57600080fd5b506104eb6104ca3660046121a1565b60fd6020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161022c565b34801561051257600080fd5b5061028b610521366004612437565b610cbd565b34801561053257600080fd5b5061028b6105413660046121a1565b610f0b565b34801561055257600080fd5b5061028b610f81565b610563610ff7565b33600090815260fd6020526040902080548211156105a65780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105ba5750428160010154115b156105e7576001810154604051635f6e272d60e11b8152600481019190915242602482015260440161059d565b818160000160008282546105fb9190612533565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f1935050505015801561065e573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036106e05760405162461bcd60e51b815260040161059d90612546565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b031661072960008051602061287c833981519152546001600160a01b031690565b6001600160a01b03161461074f5760405162461bcd60e51b815260040161059d90612592565b6107588161103d565b6040805160008082526020820190925261077491839190611045565b50565b61077f6111b5565b61078761120f565b565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036107d15760405162461bcd60e51b815260040161059d90612546565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b031661081a60008051602061287c833981519152546001600160a01b031690565b6001600160a01b0316146108405760405162461bcd60e51b815260040161059d90612592565b6108498261103d565b61085582826001611045565b5050565b600054600290610100900460ff1615801561087b575060005460ff8083169116105b6108975760405162461bcd60e51b815260040161059d906125de565b6000805461ffff191660ff8316176101001790556108b36111b5565b60fe8290556000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000306001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3161461099d5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161059d565b5060008051602061287c83398151915290565b600054610100900460ff16158080156109d05750600054600160ff909116105b806109ea5750303b1580156109ea575060005460ff166001145b610a065760405162461bcd60e51b815260040161059d906125de565b6000805460ff191660011790558015610a29576000805461ff0019166101001790555b6001600160a01b038516610a7857604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b604482015260640161059d565b6001600160a01b038416610acf57604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e6572000000000000604482015260640161059d565b6001600160a01b038316610b1657604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b604482015260640161059d565b610b1e611261565b610b26611290565b610b2f846112b7565b60fb80546001600160a01b038088166001600160a01b03199283161790925560fc80549286169290911691909117905560fe8290558015610baa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610bb96111b5565b61078760006112b7565b610bcb6111b5565b60fe55565b610bd86111b5565b610787611309565b600060608060008060006060610bf4611346565b610bfc611379565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b610c2e610ff7565b33600090815260fd60205260408120549003610c5f5760405163b38340cf60e01b815233600482015260240161059d565b610c6b610e1042612179565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed84391610cb391815260200190565b60405180910390a2565b60fc546001600160a01b03163314610cea576040516302a5785160e31b815233600482015260240161059d565b610cf2610ff7565b85846000829003610d165760405163e5180e0360e01b815260040160405180910390fd5b80600003610d3757604051630c9d0b0160e21b815260040160405180910390fd5b80821015610d625760405163320f0a1b60e01b8152600481018390526024810182905260440161059d565b610d6d600183612533565b821615610d9057604051636b1651e160e01b81526004810183905260240161059d565b83600003610db1576040516351d432c560e11b815260040160405180910390fd5b84610dbc828661262c565b11610dee5784610dcc828661262c565b604051637899ec7160e01b81526004810192909252602482015260440161059d565b610dfc89898e8a8a896113a7565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663d66eaabd868e8e8e886040518663ffffffff1660e01b8152600401610e449493929190612643565b6000604051808303818588803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b50505050508b7f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375885604051610ea891815260200190565b60405180910390a260fc546001600160a01b03166108fc86610eca848861262c565b610ed49190612533565b6040518115909202916000818181858888f19350505050158015610efc573d6000803e3d6000fd5b50505050505050505050505050565b610f136111b5565b6001600160a01b038116610f785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161059d565b610774816112b7565b610f89610ff7565b33600090815260fd60205260408120549003610fba5760405163366095e160e11b815233600482015260240161059d565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156107875760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161059d565b6107746111b5565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561107d5761107883611737565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156110d7575060408051601f3d908101601f191682019092526110d491810190612683565b60015b61113a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161059d565b60008051602061287c83398151915281146111a95760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161059d565b506110788383836117d3565b6033546001600160a01b031633146107875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059d565b6112176117fe565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff166112885760405162461bcd60e51b815260040161059d9061269c565b610787611847565b600054610100900460ff166107875760405162461bcd60e51b815260040161059d9061269c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611311610ff7565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112443390565b60606113747f416c69676e656400000000000000000000000000000000000000000000000007610116611877565b905090565b60606113747f3100000000000000000000000000000000000000000000000000000000000001610117611877565b60006113b46002876126e7565b905060008167ffffffffffffffff8111156113d1576113d16121d7565b6040519080825280602002602001820160405280156113fa578160200160208202803683370190505b50905060005b828163ffffffff16101561152557888861141b836002612709565b63ffffffff168181106114305761143061272f565b9050602002013589898360026114469190612709565b611451906001612745565b63ffffffff168181106114665761146661272f565b90506020020135604051602001611487929190918252602082015260400190565b60405160208183030381529060405280519060200120828263ffffffff16815181106114b5576114b561272f565b60200260200101818152505061151389898363ffffffff168181106114dc576114dc61272f565b9050602002013587878463ffffffff168181106114fb576114fb61272f565b905060200281019061150d9190612761565b86611924565b8061151d81612781565b915050611400565b63ffffffff81168511156115605761154e89898363ffffffff168181106114dc576114dc61272f565b8061155881612781565b915050611525565b61156b6002846126e7565b92505b821561165e575060005b828163ffffffff16101561164c5781611592826002612709565b63ffffffff16815181106115a8576115a861272f565b6020026020010151828260026115be9190612709565b6115c9906001612745565b63ffffffff16815181106115df576115df61272f565b6020026020010151604051602001611601929190918252602082015260400190565b60405160208183030381529060405280519060200120828263ffffffff168151811061162f5761162f61272f565b60209081029190910101528061164481612781565b915050611578565b6116576002846126e7565b925061156e565b60018890036116cb57868989600081811061167b5761167b61272f565b90506020020135146116c657868989600081811061169b5761169b61272f565b905060200201356040516327c4ed9760e21b815260040161059d929190918252602082015260400190565b61172c565b86826000815181106116df576116df61272f565b60200260200101511461172c5786826000815181106117005761170061272f565b60200260200101516040516327c4ed9760e21b815260040161059d929190918252602082015260400190565b505050505050505050565b6001600160a01b0381163b6117a45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161059d565b60008051602061287c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6117dc83611ac2565b6000825111806117e95750805b15611078576117f88383611b02565b50505050565b60655460ff166107875760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161059d565b600054610100900460ff1661186e5760405162461bcd60e51b815260040161059d9061269c565b610787336112b7565b606060ff83146118915761188a83611bf6565b905061191e565b81805461189d906127a6565b80601f01602080910402602001604051908101604052809291908181526020018280546118c9906127a6565b80156119165780601f106118eb57610100808354040283529160200191611916565b820191906000526020600020905b8154815290600101906020018083116118f957829003601f168201915b505050505090505b92915050565b80826040013510156119565760408051637acd6fa560e11b81529083013560048201526024810182905260440161059d565b60fe5460408051602081810193909352808201869052918401356060830152830135608082015260009060a00160405160208183030381529060405280519060200120905060006119a682611c35565b905060006119f2826119b887806127e0565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c6292505050565b6001600160a01b038116600090815260fd602090815260409091206002810154929350919087013514611a4b5760028101546040516306427aeb60e01b815260048101919091526020870135602482015260440161059d565b600281018054906000611a5d83612827565b90915550508054851115611aa0578054604051632557019960e21b81526001600160a01b038416600482015260248101919091526044810186905260640161059d565b84816000016000828254611ab49190612533565b909155505050505050505050565b611acb81611737565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611b6a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161059d565b600080846001600160a01b031684604051611b859190612840565b600060405180830381855af49150503d8060008114611bc0576040519150601f19603f3d011682016040523d82523d6000602084013e611bc5565b606091505b5091509150611bed828260405180606001604052806027815260200161289c60279139611c86565b95945050505050565b60606000611c0383611cc6565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600061191e611c42611cee565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000611c718585611e19565b91509150611c7e81611e87565b509392505050565b60608315611c95575081611cbf565b825115611ca55782518084602001fd5b8160405162461bcd60e51b815260040161059d9190612852565b9392505050565b600060ff8216601f81111561191e57604051632cd44ac360e21b815260040160405180910390fd5b6000306001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba316148015611d4757507f0000000000000000000000000000000000000000000000000000000000007a6946145b15611d7157507f994ed1746c3df72f34b6debe24c32ca2b9d17cd5406a9ed1381920d0c72d7a0b90565b611374604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f95e689cfc15cb3a505d84daa940120af738f97fc8621aa93523d07e331753beb918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6000808251604103611e4f5760208301516040840151606085015160001a611e438782858561203d565b94509450505050611e80565b8251604003611e785760208301516040840151611e6d86838361212a565b935093505050611e80565b506000905060025b9250929050565b6000816004811115611e9b57611e9b612865565b03611ea35750565b6001816004811115611eb757611eb7612865565b03611f045760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161059d565b6002816004811115611f1857611f18612865565b03611f655760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161059d565b6003816004811115611f7957611f79612865565b03611fd15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161059d565b6004816004811115611fe557611fe5612865565b036107745760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161059d565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156120745750600090506003612121565b8460ff16601b1415801561208c57508460ff16601c14155b1561209d5750600090506004612121565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156120f1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661211a57600060019250925050612121565b9150600090505b94509492505050565b6000806001600160ff1b0383168161214760ff86901c601b612179565b90506121558782888561203d565b935093505050935093915050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561191e5761191e612163565b6001600160a01b038116811461077457600080fd5b6000602082840312156121b357600080fd5b8135611cbf8161218c565b6000602082840312156121d057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561220057600080fd5b823561220b8161218c565b9150602083013567ffffffffffffffff81111561222757600080fd5b8301601f8101851361223857600080fd5b803567ffffffffffffffff811115612252576122526121d7565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612281576122816121d7565b60405281815282820160200187101561229957600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080608085870312156122cf57600080fd5b84356122da8161218c565b935060208501356122ea8161218c565b925060408501356122fa8161218c565b9396929550929360600135925050565b60005b8381101561232557818101518382015260200161230d565b50506000910152565b6000815180845261234681602086016020860161230a565b601f01601f19169290920160200192915050565b60ff60f81b8816815260e06020820152600061237960e083018961232e565b828103604084015261238b818961232e565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b818110156123e15783518352602093840193909201916001016123c3565b50909b9a5050505050505050505050565b60008083601f84011261240457600080fd5b50813567ffffffffffffffff81111561241c57600080fd5b6020830191508360208260051b8501011115611e8057600080fd5b60008060008060008060008060008060e08b8d03121561245657600080fd5b8a35995060208b013567ffffffffffffffff81111561247457600080fd5b8b01601f81018d1361248557600080fd5b803567ffffffffffffffff81111561249c57600080fd5b8d60208284010111156124ae57600080fd5b6020919091019950975060408b013567ffffffffffffffff8111156124d257600080fd5b6124de8d828e016123f2565b90985096505060608b013567ffffffffffffffff8111156124fe57600080fd5b61250a8d828e016123f2565b9b9e9a9d50989b979a9699969760808101359760a0820135975060c09091013595509350505050565b8181038181111561191e5761191e612163565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b808202811582820484141761191e5761191e612163565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561269557600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008261270457634e487b7160e01b600052601260045260246000fd5b500490565b63ffffffff818116838216029081169081811461272857612728612163565b5092915050565b634e487b7160e01b600052603260045260246000fd5b63ffffffff818116838216019081111561191e5761191e612163565b60008235605e1983360301811261277757600080fd5b9190910192915050565b600063ffffffff821663ffffffff810361279d5761279d612163565b60010192915050565b600181811c908216806127ba57607f821691505b6020821081036127da57634e487b7160e01b600052602260045260246000fd5b50919050565b6000808335601e198436030181126127f757600080fd5b83018035915067ffffffffffffffff82111561281257600080fd5b602001915036819003821315611e8057600080fd5b60006001820161283957612839612163565b5060010190565b6000825161277781846020870161230a565b602081526000611cbf602083018461232e565b634e487b7160e01b600052602160045260246000fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a176afed95ec44814e895f65d4f2718db626e3857cc95c54389c7913953d67bf64736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x4e59b44847b379578588920ca78fbf26c0b4956c":{"nonce":0,"balance":"0x0","code":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3","storage":{}},"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e6103393660046143e3565b610940565b005b61036061034e366004614424565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461444f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144ac565b610b5e565b61033e6103ea3660046145b4565b610b8a565b61033e6103fd366004614424565b610c34565b61033e6104103660046144ac565b610c41565b6103606104233660046144ac565b609f6020526000908152604090205481565b6103606104433660046144ac565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614424565b610cf4565b61049461047f366004614424565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614604565b610e31565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614637565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144ac565b610ec2565b6103b1610541366004614424565b610eeb565b61033e6105543660046144ac565b610f77565b61033e6105673660046144ac565b610f88565b6103b17f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e881565b6104946105a13660046144ac565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144ac565b610f99565b60405161036a9190614652565b61033e6105ed3660046146aa565b611018565b6106056106003660046144ac565b6113ee565b60405161036a9190614751565b61033e611462565b610494610628366004614637565b6001805460ff9092161b9081161490565b61033e6106473660046147d6565b61152e565b600154610360565b6103b17f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b6103b1610689366004614424565b611588565b6103b17f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b61033e6106c336600461480a565b6115b2565b61033e611707565b6103606106de3660046148c1565b61171b565b6103866106f1366004614424565b611765565b6000546103b1906201000090046001600160a01b031681565b6103b1611770565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614a61565b611789565b6103b17f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614b6e565b611aa2565b61036060a05481565b6107c66107c1366004614c1e565b611c07565b60405161036a9190614cc8565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614d11565b611cb6565b609c54610360565b61033e610823366004614dff565b611d1c565b61033e610836366004614fb0565b611d2f565b6108aa610849366004614637565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144ac565b611fef565b61033e6108ff366004614424565b612065565b6109336109123660046144ac565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a919061508e565b6001546002906004908116036109715760405162461bcd60e51b81526004016109689061509c565b60405180910390fd5b60005b82811015610a48576000848483818110610990576109906150d3565b90506020020160208101906109a591906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614719565b6002811115610a0157610a01614719565b90525080519091506000610a14826121c1565b90506000610a2a826001600160c01b031661222c565b9050610a378585836122f8565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a716150d3565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b666123e5565b6001600160a01b0316600090815260c860205260409020805460ff19166001179055565b60013360009081526099602052604090206001015460ff166002811115610bb357610bb3614719565b14610be85760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c2990849061512f565b60405180910390a250565b610c3c6123e5565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb89190615142565b6001600160a01b0316336001600160a01b031614610ce85760405162461bcd60e51b81526004016109689061515f565b610cf181612444565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6591906151a9565b610d815760405162461bcd60e51b8152600401610968906151cb565b60015481811614610dfa5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c29565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e6e57610e6e6150d3565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610eca6123e5565b6001600160a01b0316600090815260c860205260409020805460ff19169055565b6040516308f6629d60e31b8152600481018290526000907f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b0316906347b314e890602401602060405180830381865afa158015610f53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190615142565b610f7f6123e5565b610cf181612549565b610f906123e5565b610cf1816125b2565b6040805180820190915260008082526020820152610ebc6110137f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de684604051602001610ff89291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061261b565b612669565b6001546002906004908116036110405760405162461bcd60e51b81526004016109689061509c565b600061108884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90508483146110c25760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b838110156113e55760008585838181106110e1576110e16150d3565b919091013560f81c91503690506000898985818110611102576111026150d3565b90506020028101906111149190615213565b6040516379a0849160e11b815260ff8616600482015291935091507f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b03169063f341092290602401602060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a4919061525c565b63ffffffff1681146111e35760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b8281101561138a576000848483818110611203576112036150d3565b905060200201602081019061121891906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561126357611263614719565b600281111561127457611274614719565b90525080519091506000611287826121c1565b905060016001600160c01b03821660ff8b161c8116146112d45760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161131f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b5061137d83838f8f8d908e6001611336919061528f565b92611343939291906152a2565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122f892505050565b50909250506001016111e7565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a2505050508060010190506110c5565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561144857611448614719565b600281111561145957611459614719565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d391906151a9565b6114ef5760405162461bcd60e51b8152600401610968906151cb565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6115366123e5565b609654829060ff908116908216106115795760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115838383612789565b505050565b609c818154811061159857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146115f95760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116669187908790819084018382808284376000920191909152505060965460ff1691506126f89050565b90506000611673836121c1565b905060018085015460ff16600281111561168f5761168f614719565b1480156116a457506001600160c01b03821615155b80156116c257506116c26001600160c01b0383811690831681161490565b156113e5576113e58787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b61170f6123e5565b6117196000612bbe565b565b600061175b7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a8787878787604051602001610ff8969594939291906152cc565b9695505050505050565b6000610ebc826121c1565b60006117846064546001600160a01b031690565b905090565b60018054600091908116036117b05760405162461bcd60e51b81526004016109689061509c565b33600090815260c8602052604090205460ff166118015760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118395760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118453388612c10565b90506118a533828888808060200260200160405190810160405280939291908181526020016000905b8282101561189a5761188b60408302860136819003810190615353565b8152602001906001019061186e565b505050505087612d45565b60006118ec33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b90506000609760008e8e6000818110611907576119076150d3565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b909104909416928101929092528451805192945091611972576119726150d3565b602002602001015163ffffffff161115611a9357611a178d8d600081811061199c5761199c6150d3565b9050013560f81c60f81b60f81c83604001516000815181106119c0576119c06150d3565b60200260200101513385602001516000815181106119e0576119e06150d3565b60200260200101518c8c60008181106119fb576119fb6150d3565b905060400201803603810190611a119190615353565b866132e5565b611a9388886000818110611a2d57611a2d6150d3565b9050604002016020016020810190611a4591906144ac565b8e8e600090600192611a59939291906152a2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b50505050505050505050505050565b6001805460009190811603611ac95760405162461bcd60e51b81526004016109689061509c565b33600090815260c8602052604090205460ff16611b1a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b263385612c10565b90506000611b6f33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611bb757611bb76150d3565b602002602001015163ffffffff161115611bfc5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c2457611c246144c9565b604051908082528060200260200182016040528015611c4d578160200160208202803683370190505b50905060005b8351811015611cae57611c7f85858381518110611c7257611c726150d3565b60200260200101516134b4565b828281518110611c9157611c916150d3565b63ffffffff90921660209283029190910190910152600101611c53565b509392505050565b60018054600290811603611cdc5760405162461bcd60e51b81526004016109689061509c565b6115833384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b611d246123e5565b61158383838361356d565b600054610100900460ff1615808015611d4f5750600054600160ff909116105b80611d695750303b158015611d69575060005460ff166001145b611dcc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611def576000805461ff0019166101001790555b82518451148015611e01575081518351145b611e325760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e3b89612bbe565b611e45868661374f565b611e4e88612549565b611e57876125b2565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881166001600160a01b03199283161790925585548085018755850180547f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e841690831617905585549384019095559190920180547f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3690921691909316179091555b8451811015611f9e57611f96858281518110611f5557611f556150d3565b6020026020010151858381518110611f6f57611f6f6150d3565b6020026020010151858481518110611f8957611f896150d3565b602002602001015161356d565b600101611f37565b508015611bfc576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b611ff76123e5565b6001600160a01b03811661205c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610cf181612bbe565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dc9190615142565b6001600160a01b0316336001600160a01b03161461210c5760405162461bcd60e51b81526004016109689061515f565b60015419811960015419161461218a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c29565b6000818152609860205260408120548082036121e05750600092915050565b60008381526098602052604090206121f960018361536f565b81548110612209576122096150d3565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061223a8461383f565b61ffff166001600160401b03811115612255576122556144c9565b6040519080825280601f01601f19166020018201604052801561227f576020820181803683370190505b5090506000805b825182108015612297575061010081105b156122ee576001811b9350858416156122de578060f81b8383815181106122c0576122c06150d3565b60200101906001600160f81b031916908160001a9053508160010191505b6122e781615382565b9050612286565b5090949350505050565b60018260200151600281111561231057612310614719565b1461231a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816906366acfefe9061236f9088908690889060040161539b565b6020604051808303816000875af115801561238e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b291906153cb565b90506001600160c01b038116156123de576123de856123d9836001600160c01b031661222c565b612836565b5050505050565b336123ee611770565b6001600160a01b0316146117195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166124d25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ebc61262861386a565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806126996000805160206158738339815191528661540a565b90505b6126a581613991565b909350915060008051602061587383398151915282830983036126de576040805180820190915290815260208101919091529392505050565b60008051602061587383398151915260018208905061269c565b60008061270484613a13565b9050808360ff166001901b116127825760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff16600281111561286a5761286a614719565b1461289f5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b6096546000906128b390859060ff166126f8565b905060006128c0836121c1565b90506001600160c01b0382166129015760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129186001600160c01b0383811690831681161490565b61294d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129668482613b9b565b6001600160c01b038116612a355760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169063a364f4da90602401600060405180830381600087803b1580156129e657600080fd5b505af11580156129fa573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e169063f4e24fe590612a83908a908a9060040161541e565b600060405180830381600087803b158015612a9d57600080fd5b505af1158015612ab1573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816925063bd29b8cd9150612b039087908a90600401615442565b600060405180830381600087803b158015612b1d57600080fd5b505af1158015612b31573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616925063bd29b8cd9150612b839087908a90600401615442565b600060405180830381600087803b158015612b9d57600080fd5b505af1158015612bb1573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e909116906313542a4e90602401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f919061545b565b90506000819003610ebc577f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031663bf79ce588484612ce487610f99565b6040518463ffffffff1660e01b8152600401612d0293929190615474565b6020604051808303816000875af1158015612d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612782919061545b565b6020808201516000908152609a909152604090205460ff1615612d935760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612dcf5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e1a918891889188919061171b565b8351613d5c565b612e4560405180606001604052806060815260200160608152602001606081525090565b6000612e8d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90506000612e9a886121c1565b90506001600160c01b038216612edb5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f1d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612f55919061528f565b10612f8a5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612f948982613b9b565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051612fc4919061512f565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff166002811115612ffe57612ffe614719565b14613117576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff19169083600281111561305957613059614719565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169150639926ee7d906130ae908d9089906004016154e4565b600060405180830381600087803b1580156130c857600080fd5b505af11580156130dc573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e1690633fb2795290613167908d908c908c90600401615558565b600060405180830381600087803b15801561318157600080fd5b505af1158015613195573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169250632550477791506131eb908d908d908d908d9060040161557d565b6000604051808303816000875af115801561320a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613232919081019061560c565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36169062bff04d9061328f908c908c908c90600401615673565b6000604051808303816000875af11580156132ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132d6919081019061568d565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361333e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff161461337d5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690635401ed2790604401602060405180830381865afa1580156133ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134129190615721565b905061341e8185613f16565b6001600160601b0316866001600160601b0316116134645760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b61346e8885613f3a565b6001600160601b0316816001600160601b031610611bfc5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561353c5760016134d9828461536f565b6134e3919061536f565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613516576135166150d3565b60009182526020909120015463ffffffff1611613534575050610ebc565b6001016134c5565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135ac5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b6135b781600161573e565b6096805460ff191660ff92909216919091179055806135d68186612789565b60405160016296b58960e01b031981526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169063ff694a779061362990849088908890600401615757565b600060405180830381600087803b15801561364357600080fd5b505af1158015613657573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b031692506326d941f29150602401600060405180830381600087803b1580156136bf57600080fd5b505af11580156136d3573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561373b57600080fd5b505af1158015611bfc573d6000803e3d6000fd5b6000546201000090046001600160a01b031615801561377657506001600160a01b03821615155b6137f85760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261383b82612444565b5050565b6000805b8215610ebc5761385460018461536f565b9092169180613862816157d7565b915050613843565b6000306001600160a01b037f0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd00161480156138c357507f0000000000000000000000000000000000000000000000000000000000007a6946145b156138ed57507fc6374306ca0c3d05fd3f0cebbec8fc4308f71679c06b0e30a95d8c9709d43dae90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f6ec8a99f0e7f9ebde7354a446dcb9423f3af9c58f386a53c59c5b384f9e82d11828401527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a9960608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615873833981519152600360008051602061587383398151915286600080516020615873833981519152888909090890506000613a07827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615873833981519152613f54565b91959194509092505050565b600061010082511115613a9c5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613aad57506000919050565b60008083600081518110613ac357613ac36150d3565b0160200151600160f89190911c81901b92505b8451811015613b9257848181518110613af157613af16150d3565b0160200151600160f89190911c1b9150828211613b865760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613ad6565b50909392505050565b60008281526098602052604081205490819003613c43576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613c5c60018461536f565b81548110613c6c57613c6c6150d3565b6000918252602090912001805490915063ffffffff438116911603613cae5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613e7657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613d9c9086908690600401615442565b602060405180830381865afa158015613db9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ddd91906157f8565b6001600160e01b031916146115835760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613e8a8383613ffd565b6001600160a01b0316146115835760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f309061ffff1685615822565b6127829190615844565b604081015160009061271090613f309061ffff1685615822565b600080613f5f614363565b613f67614381565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fa457fe5b5082613ff25760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061400c8585614019565b91509150611cae81614087565b600080825160410361404f5760208301516040840151606085015160001a6140438782858561423d565b94509450505050614080565b8251604003614078576020830151604084015161406d86838361432a565b935093505050614080565b506000905060025b9250929050565b600081600481111561409b5761409b614719565b036140a35750565b60018160048111156140b7576140b7614719565b036141045760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561411857614118614719565b036141655760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b600381600481111561417957614179614719565b036141d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b60048160048111156141e5576141e5614719565b03610cf15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142745750600090506003614321565b8460ff16601b1415801561428c57508460ff16601c14155b1561429d5750600090506004614321565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156142f1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661431a57600060019250925050614321565b9150600090505b94509492505050565b6000806001600160ff1b0383168161434760ff86901c601b61528f565b90506143558782888561423d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f8401126143b157600080fd5b5081356001600160401b038111156143c857600080fd5b6020830191508360208260051b850101111561408057600080fd5b600080602083850312156143f657600080fd5b82356001600160401b0381111561440c57600080fd5b6144188582860161439f565b90969095509350505050565b60006020828403121561443657600080fd5b5035919050565b63ffffffff81168114610cf157600080fd5b60008060006060848603121561446457600080fd5b8335925060208401356144768161443d565b929592945050506040919091013590565b6001600160a01b0381168114610cf157600080fd5b80356144a781614487565b919050565b6000602082840312156144be57600080fd5b813561278281614487565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614501576145016144c9565b60405290565b604080519081016001600160401b0381118282101715614501576145016144c9565b604051601f8201601f191681016001600160401b0381118282101715614551576145516144c9565b604052919050565b6000806001600160401b03841115614573576145736144c9565b50601f8301601f191660200161458881614529565b91505082815283838301111561459d57600080fd5b828260208301376000602084830101529392505050565b6000602082840312156145c657600080fd5b81356001600160401b038111156145dc57600080fd5b8201601f810184136145ed57600080fd5b6145fc84823560208401614559565b949350505050565b6000806040838503121561461757600080fd5b50508035926020909101359150565b803560ff811681146144a757600080fd5b60006020828403121561464957600080fd5b61278282614626565b815181526020808301519082015260408101610ebc565b60008083601f84011261467b57600080fd5b5081356001600160401b0381111561469257600080fd5b60208301915083602082850101111561408057600080fd5b600080600080604085870312156146c057600080fd5b84356001600160401b038111156146d657600080fd5b6146e28782880161439f565b90955093505060208501356001600160401b0381111561470157600080fd5b61470d87828801614669565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061474d57634e487b7160e01b600052602160045260246000fd5b9052565b81518152602080830151604083019161476c9084018261472f565b5092915050565b803561ffff811681146144a757600080fd5b60006060828403121561479757600080fd5b61479f6144df565b905081356147ac8161443d565b81526147ba60208301614773565b60208201526147cb60408301614773565b604082015292915050565b600080608083850312156147e957600080fd5b6147f283614626565b91506148018460208501614785565b90509250929050565b60008060006040848603121561481f57600080fd5b833561482a81614487565b925060208401356001600160401b0381111561484557600080fd5b61485186828701614669565b9497909650939450505050565b60006001600160401b03821115614877576148776144c9565b5060051b60200190565b60006040828403121561489357600080fd5b61489b614507565b90506148a682614626565b815260208201356148b681614487565b602082015292915050565b600080600080600060a086880312156148d957600080fd5b85356148e481614487565b94506020860135935060408601356001600160401b0381111561490657600080fd5b8601601f8101881361491757600080fd5b803561492a6149258261485e565b614529565b8082825260208201915060208360061b85010192508a83111561494c57600080fd5b6020840193505b82841015614978576149658b85614881565b8252602082019150604084019350614953565b979a9699509697606081013597506080013595945050505050565b600061010082840312156149a657600080fd5b50919050565b60008083601f8401126149be57600080fd5b5081356001600160401b038111156149d557600080fd5b6020830191508360208260061b850101111561408057600080fd5b600060608284031215614a0257600080fd5b614a0a6144df565b905081356001600160401b03811115614a2257600080fd5b8201601f81018413614a3357600080fd5b614a4284823560208401614559565b8252506020828101359082015260409182013591810191909152919050565b60008060008060008060008060006101a08a8c031215614a8057600080fd5b89356001600160401b03811115614a9657600080fd5b614aa28c828d01614669565b909a5098505060208a01356001600160401b03811115614ac157600080fd5b614acd8c828d01614669565b9098509650614ae190508b60408c01614993565b94506101408a01356001600160401b03811115614afd57600080fd5b614b098c828d016149ac565b9095509350506101608a01356001600160401b03811115614b2957600080fd5b614b358c828d016149f0565b9250506101808a01356001600160401b03811115614b5257600080fd5b614b5e8c828d016149f0565b9150509295985092959850929598565b6000806000806000806101608789031215614b8857600080fd5b86356001600160401b03811115614b9e57600080fd5b614baa89828a01614669565b90975095505060208701356001600160401b03811115614bc957600080fd5b614bd589828a01614669565b9095509350614be990508860408901614993565b91506101408701356001600160401b03811115614c0557600080fd5b614c1189828a016149f0565b9150509295509295509295565b60008060408385031215614c3157600080fd5b8235614c3c8161443d565b915060208301356001600160401b03811115614c5757600080fd5b8301601f81018513614c6857600080fd5b8035614c766149258261485e565b8082825260208201915060208360051b850101925087831115614c9857600080fd5b6020840193505b82841015614cba578335825260209384019390910190614c9f565b809450505050509250929050565b602080825282518282018190526000918401906040840190835b81811015614d0657835163ffffffff16835260209384019390920191600101614ce2565b509095945050505050565b60008060208385031215614d2457600080fd5b82356001600160401b03811115614d3a57600080fd5b61441885828601614669565b6001600160601b0381168114610cf157600080fd5b600082601f830112614d6c57600080fd5b8135614d7a6149258261485e565b8082825260208201915060208360061b860101925085831115614d9c57600080fd5b602085015b83811015614df55760408188031215614db957600080fd5b614dc1614507565b8135614dcc81614487565b81526020820135614ddc81614d46565b6020828101919091529084529290920191604001614da1565b5095945050505050565b600080600060a08486031215614e1457600080fd5b614e1e8585614785565b92506060840135614e2e81614d46565b915060808401356001600160401b03811115614e4957600080fd5b614e5586828701614d5b565b9150509250925092565b600082601f830112614e7057600080fd5b8135614e7e6149258261485e565b80828252602082019150602060608402860101925085831115614ea057600080fd5b602085015b83811015614df557614eb78782614785565b8352602090920191606001614ea5565b600082601f830112614ed857600080fd5b8135614ee66149258261485e565b8082825260208201915060208360051b860101925085831115614f0857600080fd5b602085015b83811015614df5578035614f2081614d46565b835260209283019201614f0d565b600082601f830112614f3f57600080fd5b8135614f4d6149258261485e565b8082825260208201915060208360051b860101925085831115614f6f57600080fd5b602085015b83811015614df55780356001600160401b03811115614f9257600080fd5b614fa1886020838a0101614d5b565b84525060209283019201614f74565b600080600080600080600080610100898b031215614fcd57600080fd5b614fd68961449c565b9750614fe460208a0161449c565b9650614ff260408a0161449c565b955061500060608a0161449c565b94506080890135935060a08901356001600160401b0381111561502257600080fd5b61502e8b828c01614e5f565b93505060c08901356001600160401b0381111561504a57600080fd5b6150568b828c01614ec7565b92505060e08901356001600160401b0381111561507257600080fd5b61507e8b828c01614f2e565b9150509295985092959890939650565b60208101610ebc828461472f565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b8181101561510f576020818501810151868301820152016150f3565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061278260208301846150e9565b60006020828403121561515457600080fd5b815161278281614487565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156151bb57600080fd5b8151801515811461278257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261522a57600080fd5b8301803591506001600160401b0382111561524457600080fd5b6020019150600581901b360382131561408057600080fd5b60006020828403121561526e57600080fd5b81516127828161443d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ebc57610ebc615279565b600080858511156152b257600080fd5b838611156152bf57600080fd5b5050820193919092039150565b600060c0820188835260018060a01b038816602084015286604084015260c0606084015280865180835260e08501915060208801925060005b8181101561533b578351805160ff1684526020908101516001600160a01b03168185015290930192604090920191600101615305565b50506080840195909552505060a00152949350505050565b60006040828403121561536557600080fd5b6127828383614881565b81810381811115610ebc57610ebc615279565b60006001820161539457615394615279565b5060010190565b60018060a01b03841681528260208201526060604082015260006153c260608301846150e9565b95945050505050565b6000602082840312156153dd57600080fd5b81516001600160c01b038116811461278257600080fd5b634e487b7160e01b600052601260045260246000fd5b600082615419576154196153f4565b500690565b6001600160a01b03831681526040602082018190526000906145fc908301846150e9565b8281526040602082015260006145fc60408301846150e9565b60006020828403121561546d57600080fd5b5051919050565b6001600160a01b0384168152610160810161549c602083018580358252602090810135910152565b6154b6606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e0840137825161012083015260208301516101408301526145fc565b60018060a01b038316815260406020820152600082516060604084015261550e60a08401826150e9565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906153c2908301848661552f565b60018060a01b038516815283602082015260606040820152600061175b60608301848661552f565b600082601f8301126155b657600080fd5b81516155c46149258261485e565b8082825260208201915060208360051b8601019250858311156155e657600080fd5b602085015b83811015614df55780516155fe81614d46565b8352602092830192016155eb565b6000806040838503121561561f57600080fd5b82516001600160401b0381111561563557600080fd5b615641858286016155a5565b92505060208301516001600160401b0381111561565d57600080fd5b615669858286016155a5565b9150509250929050565b8381526040602082015260006153c260408301848661552f565b60006020828403121561569f57600080fd5b81516001600160401b038111156156b557600080fd5b8201601f810184136156c657600080fd5b80516156d46149258261485e565b8082825260208201915060208360051b8501019250868311156156f657600080fd5b6020840193505b8284101561175b5783516157108161443d565b8252602093840193909101906156fd565b60006020828403121561573357600080fd5b815161278281614d46565b60ff8181168382160190811115610ebc57610ebc615279565b60006060820160ff861683526001600160601b03851660208401526060604084015280845180835260808501915060208601925060005b818110156157ca57835180516001600160a01b031684526020908101516001600160601b0316818501529093019260409092019160010161578e565b5090979650505050505050565b600061ffff821661ffff81036157ef576157ef615279565b60010192915050565b60006020828403121561580a57600080fd5b81516001600160e01b03198116811461278257600080fd5b6001600160601b03818116838216029081169081811461476c5761476c615279565b60006001600160601b0383168061585d5761585d6153f4565b806001600160601b038416049150509291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a2646970667358221220b92168cdd7913389b4693f8d47acf022803b83aaede28b5d32f3a5d020a92d8264736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x5fbdb2315678afecb367f032d93f642f64180aa3":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"}},"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000066":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000097":"0x5bc5b424ff8db9bd8202cae3beb193c946b905d8ebddb990e36a723af40eb1c4","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0x610178da211fef7d417bc0e6fed39f05609ad788":{"nonce":1,"balance":"0x0","code":"0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e40565b610ca5565b60405161020f9190614eb9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ec7565b610d0a565b60405161020f9190614ee0565b34801561041557600080fd5b506103af610424366004614ec7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f28565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614f9b565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e40565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615045565b61144e565b34801561052f57600080fd5b5061022d61053e366004615071565b61168b565b34801561054f57600080fd5b5061022d61055e36600461518f565b611863565b34801561056f57600080fd5b5061022d61057e366004615260565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615045565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610687919061535b565b156106ad5760405162461bcd60e51b81526004016106a49061537d565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615422565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a919061535b565b156108375760405162461bcd60e51b81526004016106a49061537d565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b629190615471565b8935610b7160208c018c61548a565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a6154d0565b9050602002016020810190610baf91906154e6565b8a8a86818110610bc157610bc16154d0565b9050602002810190610bd3919061548a565b8a8a88818110610be557610be56154d0565b9050602002810190610bf7919061550d565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e81565b6002811115610dae57610dae614e81565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a490615556565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615620565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f5592919061566f565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff0919061535b565b1561100d5760405162461bcd60e51b81526004016106a49061537d565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d19190615471565b8735610b7160208a018a61548a565b6000805b8881101561127a576112668b8b8b84818110611202576112026154d0565b905060200201602081019061121791906154e6565b8a358a8a8681811061122b5761122b6154d0565b905060200281019061123d919061548a565b8a8a8881811061124f5761124f6154d0565b9050602002810190611261919061550d565b6128c1565b6112709083615683565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e81565b60028111156113d9576113d9614e81565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615422565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a490615556565b6114a4633b9aca00826156f1565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca0083615705565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615719565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611919919061535b565b156119365760405162461bcd60e51b81526004016106a49061537d565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e36154d0565b60200260200101518784815181106119fd576119fd6154d0565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab7919061535b565b15611ad45760405162461bcd60e51b81526004016106a49061537d565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf69190615471565b8b35610b7160208e018e61548a565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d6154d0565b9050602002810190611c4f9190615739565b8c8c86818110611c6157611c616154d0565b9050602002810190611c73919061548a565b8c8c88818110611c8557611c856154d0565b9050602002810190611c97919061550d565b8c8c8a818110611ca957611ca96154d0565b9050602002810190611cbb919061550d565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee908390615683565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca009061575a565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea2919061535b565b15611ebf5760405162461bcd60e51b81526004016106a49061537d565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f829190615771565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c6020615784565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615719565b610d0491906157a7565b60006120fb600c6020615784565b6121068360016157cd565b6121109190615784565b610d04907f000000000000000000000000000000000000000000000000000000006059f4606157cd565b6121466003602061575a565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e81565b600281111561238757612387614e81565b90525090506000816060015160028111156123a4576123a4614e81565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e906157ed565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f83615811565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e81565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b0316612773919061575a565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b60405160029061282290849060009060200161582a565b60408051601f198184030181529082905261283c91615859565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d049190615471565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e81565b60028111156129c0576129c0614e81565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e81565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e81565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b896158da565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b6158da565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e81565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a16565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f6158da565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e81565b600281111561333857613338614e81565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d6154d0565b60200260200101519050919050565b60008160018151811061342d5761342d6154d0565b6000610d0482600281518110613469576134696154d0565b60200260200101516147cd565b61348260036002615b17565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b61353090602061575a565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d0482600781518110613469576134696154d0565b60006136fd6001600160401b03808416908516615b23565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b8051909150156116865780806020019051810190613890919061535b565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b17565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b17565b61399a60c0840160a08501615b43565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615b8b83398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b17565b613a21610100840160e08501615b43565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b17565b613aa960e0840160c08501615b43565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b856158da565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b7690602061575a565b613b80848061548a565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b90602061575a565b613c18604085018561548a565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615b8b83398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e6003602061575a565b613cab602085018561548a565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d2481602061575a565b613d31606085018561548a565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd90602061575a565b613dea608085018561548a565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615b43565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615b43565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef3608086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb8602086018661548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b7614071604087018761548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a606086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615b43565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a9614268878061548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d0482600181518110613469576134696154d0565b6000610d0482600381518110613469576134696154d0565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615719565b6001600160401b03908116825260348054849260009161441c918591166157cd565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e81565b1461448d576039805490600061448083615b60565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e81565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b03166157cd565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b91906156f1565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c3576147506002856156f1565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b600080600283516148459190615705565b90506000816001600160401b038111156148615761486161508e565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a5838361575a565b815181106148b5576148b56154d0565b6020026020010151868360026148cb919061575a565b6148d6906001614c64565b815181106148e6576148e66154d0565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f198184030181529082905261492291615859565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906149629190615471565b828281518110614974576149746154d0565b6020908102919091010152600101614890565b50614993600283615705565b91505b8115614aa95760005b82811015614a96576002826149b4838361575a565b815181106149c4576149c46154d0565b6020026020010151838360026149da919061575a565b6149e5906001614c64565b815181106149f5576149f56154d0565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a3191615859565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a719190615471565b828281518110614a8357614a836154d0565b602090810291909101015260010161499f565b50614aa2600283615705565b9150614996565b80600081518110614abc57614abc6154d0565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb89190615859565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615b77565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b0380821115614d7257600080fd5b614d7e8c838d01614ccc565b985060408b0135915080821115614d9457600080fd5b614da08c838d01614ce4565b909850965060608b0135915080821115614db957600080fd5b614dc58c838d01614ce4565b909650945060808b0135915080821115614dde57600080fd5b50614deb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e1157600080fd5b5081356001600160401b03811115614e2857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e5357600080fd5b82356001600160401b03811115614e6957600080fd5b614e7585828601614dff565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614eb557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614e97565b600060208284031215614ed957600080fd5b5035919050565b60006080820190506001600160401b03808451168352806020850151166020840152806040850151166040840152506060830151614f216060840182614e97565b5092915050565b600080600080600060608688031215614f4057600080fd5b85356001600160401b0380821115614f5757600080fd5b614f6389838a01614dff565b90975095506020880135915080821115614f7c57600080fd5b50614f8988828901614dff565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fb757600080fd5b8835614fc281614c77565b975060208901356001600160401b0380821115614fde57600080fd5b614fea8c838d01614ce4565b909950975060408b013591508082111561500357600080fd5b61500f8c838d01614ccc565b965060608b0135915080821115614db957600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615025565b6000806040838503121561505857600080fd5b823561506381615025565b946020939093013593505050565b60006020828403121561508357600080fd5b81356136fd81615025565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150c7576150c761508e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156150f5576150f561508e565b604052919050565b60006001600160401b038211156151165761511661508e565b5060051b60200190565b600082601f83011261513157600080fd5b81356020615146615141836150fd565b6150cd565b8083825260208201915060208460051b87010193508684111561516857600080fd5b602086015b84811015615184578035835291830191830161516d565b509695505050505050565b6000806000606084860312156151a457600080fd5b83356001600160401b03808211156151bb57600080fd5b818601915086601f8301126151cf57600080fd5b813560206151df615141836150fd565b82815260059290921b8401810191818101908a8411156151fe57600080fd5b948201945b8386101561522557853561521681615025565b82529482019490820190615203565b9750508701359250508082111561523b57600080fd5b5061524886828701615120565b9250506152576040850161503a565b90509250925092565b60008060008060008060008060008060c08b8d03121561527f57600080fd5b6152888b614c8c565b995060208b01356001600160401b03808211156152a457600080fd5b6152b08e838f01614ccc565b9a5060408d01359150808211156152c657600080fd5b6152d28e838f01614ce4565b909a50985060608d01359150808211156152eb57600080fd5b6152f78e838f01614ce4565b909850965060808d013591508082111561531057600080fd5b61531c8e838f01614ce4565b909650945060a08d013591508082111561533557600080fd5b506153428d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b60006020828403121561536d57600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b60006020828403121561548357600080fd5b5051919050565b6000808335601e198436030181126154a157600080fd5b8301803591506001600160401b038211156154bb57600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156154f857600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261552457600080fd5b8301803591506001600160401b0382111561553e57600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b838110156155eb5781810151838201526020016155d3565b50506000910152565b6000815180845261560c8160208601602086016155d0565b601f01601f19169290920160200192915050565b60808152600061563460808301888a6155a7565b828103602084015261564681886155f4565b9050828103604084015261565b8186886155a7565b915050826060830152979650505050505050565b602081526000614adc6020830184866155a7565b80820182811260008312801582168215821617156156a3576156a3614c4e565b505092915050565b80820260008212600160ff1b841416156156c7576156c7614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b600082615700576157006156db565b500690565b600082615714576157146156db565b500490565b6001600160401b03828116828216039080821115614f2157614f21614c4e565b6000823561017e1983360301811261575057600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160280821691908281146156a3576156a3614c4e565b60006001600160401b03808416806157c1576157c16156db565b92169190910492915050565b6001600160401b03818116838216019080821115614f2157614f21614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161582357615823614c4e565b5060010190565b6000835161583c8184602088016155d0565b6001600160801b0319939093169190920190815260100192915050565b600082516157508184602087016155d0565b600082601f83011261587c57600080fd5b81356001600160401b038111156158955761589561508e565b6158a8601f8201601f19166020016150cd565b8181528460208386010111156158bd57600080fd5b816020850160208301376000918101602001919091529392505050565b600061018082360312156158ed57600080fd5b6158f56150a4565b82356001600160401b038082111561590c57600080fd5b6159183683870161586b565b8352602085013591508082111561592e57600080fd5b61593a3683870161586b565b6020840152604085013591508082111561595357600080fd5b61595f3683870161586b565b6040840152606085013591508082111561597857600080fd5b6159843683870161586b565b6060840152608085013591508082111561599d57600080fd5b506159aa3682860161586b565b6080830152506159bc60a08401614c8c565b60a08201526159cd60c08401614c8c565b60c08201526159de60e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a2857600080fd5b81516136fd81614c77565b600181815b80851115615a6e578160001904821115615a5457615a54614c4e565b80851615615a6157918102915b93841c9390800290615a38565b509250929050565b600082615a8557506001610d04565b81615a9257506000610d04565b8160018114615aa85760028114615ab257615ace565b6001915050610d04565b60ff841115615ac357615ac3614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615af1575081810a610d04565b615afb8383615a33565b8060001904821115615b0f57615b0f614c4e565b029392505050565b60006136fd8383615a76565b8181036000831280158383131683831282161715614f2157614f21614c4e565b600060208284031215615b5557600080fd5b81356136fd81614c77565b600081615b6f57615b6f614c4e565b506000190190565b6020815260006136fd60208301846155f456fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212203a1d7654540a3a59378fcb8f0dc45727b0865d15b2835f5c00ae74b9a4b3506964736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x68b1d87f95878fe05b998f19b66f4baba5de1aed":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f0565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a13565b610aba565b34801561032357600080fd5b50610337610332366004611a13565b610b3d565b6040516101bf9190611a3f565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4d565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a13565b610f0e565b34801561043157600080fd5b50610170610440366004611a86565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acc565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b22565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b3f565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b89565b6105f65760405162461bcd60e51b815260040161055990611bab565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c09565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1c565b8154811061071d5761071d611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1c565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c45565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1c565b8154811061082757610827611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c2f565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c09565b905060008167ffffffffffffffff8111156108dd576108dd611c45565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1c565b8154811061096557610965611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c2f565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b89565b610a675760405162461bcd60e51b815260040161055990611bab565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c2f565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1c565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b22565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5b565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c09565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5b565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5b565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b22565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b3f565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1c565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1c565b8154811061163357611633611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1c565b43101561168657506116a6565b805161169b906001600160e01b031686611c1c565b9450506001016115e2565b6116b08184611c1c565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1c565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000919060409081850190868401855b828110156119e3576119d3848351611985565b92840192908501906001016119c0565b5091979650505050505050565b600060208284031215611a0257600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2657600080fd5b8235611a3181611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6057600080fd5b8235611a6b81611933565b91506020830135611a7b81611933565b809150509250929050565b60008060008060808587031215611a9c57600080fd5b8435611aa781611933565b93506020850135611ab781611933565b93969395505050506040820135916060013590565b602080825282518282015282810151604080840181905281516060850181905260009392830191849160808701905b8084101561088657611b0e828651611985565b938501936001939093019290820190611afb565b600060208284031215611b3457600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9b57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf3565b80820180821115610b3757610b37611bf3565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122008c24927adbff47182d3eb1466e14dfabce75639c9bbc81de71096db25fc9c1c64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x70997970c51812dc3a010c7d01b50e0d17dc79c8":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x70e0ba845a1a0f2da3359c97e0285013525ffc49":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f2a565b60405180910390f35b6100f46100ef366004610f9d565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fd0565b610404565b005b6100f4610138366004610feb565b610528565b6101647f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fd0565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9d565b6105f5565b6040516100d8919061102e565b61018f6101e1366004610f9d565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611066565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fd0565b6108d5565b6060336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146102bb5760405162461bcd60e51b81526004016102b290611090565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611103565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611119565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112f565b6000610368836108f4565b905061037f898461037a60018561119a565b6109f1565b8085858151811061039257610392611119565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461044c5760405162461bcd60e51b81526004016102b290611090565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611119565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611103565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611119565b6020026020010181815250506000801b8282815181106106a2576106a2611119565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611119565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146108135760405162461bcd60e51b81526004016102b290611090565b60005b818110156108cf57600083838381811061083257610832611119565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112f565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111b6565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b60018461119a565b63ffffffff168152602081019190915260400160009081205490036103b75760ff841660009081526002602052604081209061098860018461119a565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111d2565b81548110610abc57610abc611119565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111d2565b81548110610b0357610b03611119565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111d2565b81548110610b5d57610b5d611119565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111e5565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111d2565b81548110610cb457610cb4611119565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111e5565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff1661119a565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff811115610edf57600080fd5b8401601f81018613610ef057600080fd5b803567ffffffffffffffff811115610f0757600080fd5b866020828401011115610f1957600080fd5b939660209190910195509293505050565b602080825282518282018190526000918401906040840190835b81811015610f6857835163ffffffff16835260209384019390920191600101610f44565b509095945050505050565b803560ff81168114610f8457600080fd5b919050565b803563ffffffff81168114610f8457600080fd5b60008060408385031215610fb057600080fd5b610fb983610f73565b9150610fc760208401610f89565b90509250929050565b600060208284031215610fe257600080fd5b6103b782610f73565b60008060006060848603121561100057600080fd5b61100984610f73565b925061101760208501610f89565b915061102560408501610f89565b90509250925092565b602080825282518282018190526000918401906040840190835b81811015610f68578351835260209384019390920191600101611048565b6000806040838503121561107957600080fd5b61108283610f73565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff82811682821603908111156103fe576103fe611184565b63ffffffff81811683821601908111156103fe576103fe611184565b818103818111156103fe576103fe611184565b6000816111f4576111f4611184565b50600019019056fea2646970667358221220ba945981c3e38b03a37bd1abcfb723dba10920ef62bf03b26894aea4f4c71fdb64736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x7969c5ed335650692bc04293b07f5bf2e7a673c0":{"nonce":1,"balance":"0x0","code":"0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212205dc7632c28b0e81a7d9842ec88e360ef8949d326f6f9e7e1a8eff8de6eb4842164736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955","0x00000000000000000000000000000000000000000000000000000000000000fb":"0x0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","0x00000000000000000000000000000000000000000000000000000000000000fc":"0x0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc","0x00000000000000000000000000000000000000000000000000000000000000fe":"0x41817b5c5b0c3dcda70ccb43ba175fdcd7e586f9e0484422a2c6bba678fdf4a3","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3"}},"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220157b8fd2af6cc8480450ce674c8687dcbdc3c3a46aa68acd19633d494b70b35b64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x809d550fca64d94bd9f66e60752a544199cfac3d":{"nonce":1,"balance":"0x0","code":"0x6080604052600436106101fd5760003560e01c806395c6d6041161010d578063d66eaabd116100a0578063f474b5201161006f578063f474b520146106ab578063f9120af6146106d8578063fa534dc0146106f8578063fc299dee14610718578063fce36c7d1461073857600080fd5b8063d66eaabd1461062f578063df5cf72314610642578063e481af9d14610676578063f2fde38b1461068b57600080fd5b8063ab21739a116100dc578063ab21739a1461056b578063b099627e1461058b578063b98d0908146105f5578063c0c53b8b1461060f57600080fd5b806395c6d604146104eb5780639926ee7d1461050b578063a364f4da1461052b578063a98fb3551461054b57600080fd5b80634ae07c37116101905780636d14a9871161015f5780636d14a9871461042057806370a0823114610454578063715018a614610498578063800fb61f146104ad5780638da5cb5b146104cd57600080fd5b80634ae07c37146103575780635df459461461038557806368304835146103b95780636b3aa72e146103ed57600080fd5b80633bc28c8c116101cc5780633bc28c8c146102cc578063416c7e5e146102ec5780634223d5511461030c5780634a5bf6321461031f57600080fd5b806306045a9114610213578063171f1d5b146102485780632e1a7d4d1461027f57806333cfb7b71461029f57600080fd5b3661020e5761020c3334610758565b005b600080fd5b34801561021f57600080fd5b5061023361022e366004614238565b6107ed565b60405190151581526020015b60405180910390f35b34801561025457600080fd5b5061026861026336600461438b565b6108e4565b60408051921515835290151560208301520161023f565b34801561028b57600080fd5b5061020c61029a3660046143dc565b610a6e565b3480156102ab57600080fd5b506102bf6102ba3660046143f5565b610b46565b60405161023f9190614412565b3480156102d857600080fd5b5061020c6102e73660046143f5565b610ff9565b3480156102f857600080fd5b5061020c610307366004614461565b61100d565b61020c61031a3660046143f5565b611144565b34801561032b57600080fd5b5060cb5461033f906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b34801561036357600080fd5b50610377610372366004614759565b61114e565b60405161023f9291906147f4565b34801561039157600080fd5b5061033f7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b3480156103c557600080fd5b5061033f7f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b3480156103f957600080fd5b507f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f87570761033f565b34801561042c57600080fd5b5061033f7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b34801561046057600080fd5b5061048a61046f3660046143f5565b6001600160a01b0316600090815260ca602052604090205490565b60405190815260200161023f565b3480156104a457600080fd5b5061020c612082565b3480156104b957600080fd5b5061020c6104c83660046143f5565b612096565b3480156104d957600080fd5b506033546001600160a01b031661033f565b3480156104f757600080fd5b50610233610506366004614885565b612136565b34801561051757600080fd5b5061020c6105263660046148d0565b61215b565b34801561053757600080fd5b5061020c6105463660046143f5565b612227565b34801561055757600080fd5b5061020c610566366004614987565b6122ee565b34801561057757600080fd5b5061020c6105863660046149d7565b612342565b34801561059757600080fd5b506105d36105a63660046143dc565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff909416845291151560208401529082015260600161023f565b34801561060157600080fd5b506097546102339060ff1681565b34801561061b57600080fd5b5061020c61062a3660046149fe565b612701565b61020c61063d366004614a49565b6128c6565b34801561064e57600080fd5b5061033f7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561068257600080fd5b506102bf612a80565b34801561069757600080fd5b5061020c6106a63660046143f5565b612e2c565b3480156106b757600080fd5b5061048a6106c63660046143f5565b60ca6020526000908152604090205481565b3480156106e457600080fd5b5061020c6106f33660046143f5565b612ea2565b34801561070457600080fd5b50610233610713366004614a9b565b612ecc565b34801561072457600080fd5b5060655461033f906001600160a01b031681565b34801561074457600080fd5b5061020c610753366004614b1b565b612f41565b8060000361078157604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca6020526040812080548392906107a9908490614ba6565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a25050565b6000806001600160a01b038316610805575084610831565b8583604051602001610818929190614bb9565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff1690036108565760009150506108d8565b600081815260c96020526040902054640100000000900460ff1661087e5760009150506108d8565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f19818403018152919052805160208201209091506108d2878983896132f0565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018787600001518860200151886000015160006002811061092c5761092c614bd4565b60200201518951600160200201518a6020015160006002811061095157610951614bd4565b60200201518b6020015160016002811061096d5761096d614bd4565b602090810291909101518c518d8301516040516109ca9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6109ed9190614bea565b9050610a60610a066109ff8884613308565b8690613399565b610a0e61342e565b610a56610a4785610a41604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613308565b610a508c6134ee565b90613399565b886201d4c061357d565b909890975095505050505050565b33600090815260ca6020526040902054811115610abf5733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018390526044820152606401610778565b33600090815260ca602052604081208054839290610ade908490614c0c565b909155505033600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610b42573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16906313542a4e90602401602060405180830381865afa158015610bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd69190614c1f565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c169063871ef04990602401602060405180830381865afa158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c659190614c38565b90506001600160c01b0381161580610cff57507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190614c61565b60ff16155b15610d1f5760408051600080825260208201909252905b50949350505050565b6000610d33826001600160c01b0316613797565b90506000805b8251811015610dff577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b0316633ca5a5f5848381518110610d8357610d83614bd4565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610deb9190614c1f565b610df59083614ba6565b9150600101610d39565b506000816001600160401b03811115610e1a57610e1a614110565b604051908082528060200260200182016040528015610e43578160200160208202803683370190505b5090506000805b8451811015610fec576000858281518110610e6757610e67614bd4565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137781690633ca5a5f590602401602060405180830381865afa158015610edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f009190614c1f565b905060005b81811015610fe1576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa158015610f7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9e9190614c99565b60000151868681518110610fb457610fb4614bd4565b6001600160a01b039092166020928302919091019091015284610fd681614cdc565b955050600101610f05565b505050600101610e4a565b5090979650505050505050565b611001613859565b61100a816138b3565b50565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108f9190614cf5565b6001600160a01b0316336001600160a01b03161461113b5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610778565b61100a8161391c565b61100a8134610758565b604080518082019091526060808252602082015260008260400151516040518060400160405280600181526020016000815250511480156111aa57508260a0015151604051806040016040528060018152602001600081525051145b80156111d157508260c0015151604051806040016040528060018152602001600081525051145b80156111f857508260e0015151604051806040016040528060018152602001600081525051145b6112625760405162461bcd60e51b8152602060048201526041602482015260008051602061525483398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610778565b825151602084015151146112da5760405162461bcd60e51b815260206004820152604460248201819052600080516020615254833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610778565b4363ffffffff168463ffffffff16106113495760405162461bcd60e51b815260206004820152603c602482015260008051602061525483398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610778565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561140a5761140a614110565b604051908082528060200260200182016040528015611433578160200160208202803683370190505b5081526020860151516001600160401b0381111561145357611453614110565b60405190808252806020026020018201604052801561147c578160200160208202803683370190505b508160200181905250600061152860405180604001604052806001815260200160008152507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115239190614c61565b613963565b905060005b8760200151518110156117b9576115728860200151828151811061155357611553614bd4565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061158857611588614bd4565b602090810291909101015280156116485760208301516115a9600183614c0c565b815181106115b9576115b9614bd4565b602002602001015160001c836020015182815181106115da576115da614bd4565b602002602001015160001c11611648576040805162461bcd60e51b815260206004820152602481019190915260008051602061525483398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610778565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b03166304ec63518460200151838151811061168d5761168d614bd4565b60200260200101518b8b6000015185815181106116ac576116ac614bd4565b60200260200101516040518463ffffffff1660e01b81526004016116e99392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a9190614c38565b6001600160c01b03168360000151828151811061174957611749614bd4565b6020026020010181815250506117af6109ff611783848660000151858151811061177557611775614bd4565b6020026020010151166139f6565b8a60200151848151811061179957611799614bd4565b6020026020010151613a2190919063ffffffff16565b945060010161152d565b50506117c483613b04565b60975490935060ff166000816117db57600061185d565b7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc96001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185d9190614c1f565b905060005b604051806040016040528060018152602001600081525051811015611f535782156119ee578963ffffffff16827f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b031663249a0c42604051806040016040528060018152602001600081525085815181106118e6576118e6614bd4565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561192a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194e9190614c1f565b6119589190614ba6565b116119ee5760405162461bcd60e51b8152602060048201526066602482015260008051602061525483398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610778565b7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611a4557611a45614bd4565b602001015160f81c60f81b60f81c8c8c60a001518581518110611a6a57611a6a614bd4565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aea9190614d12565b6001600160401b031916611b0d8a60400151838151811061155357611553614bd4565b67ffffffffffffffff191614611ba95760405162461bcd60e51b8152602060048201526061602482015260008051602061525483398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610778565b611bd989604001518281518110611bc257611bc2614bd4565b60200260200101518761339990919063ffffffff16565b95507f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611c3257611c32614bd4565b602001015160f81c60f81b60f81c8c8c60c001518581518110611c5757611c57614bd4565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd79190614d3d565b85602001518281518110611ced57611ced614bd4565b6001600160601b03909216602092830291909101820152850151805182908110611d1957611d19614bd4565b602002602001015185600001518281518110611d3757611d37614bd4565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611f4957611dc686600001518281518110611d8157611d81614bd4565b602002602001015160405180604001604052806001815260200160008152508581518110611db157611db1614bd4565b016020015160f81c60ff161c60019081161490565b15611f41577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611e2257611e22614bd4565b602001015160f81c60f81b60f81c8e89602001518581518110611e4757611e47614bd4565b60200260200101518f60e001518881518110611e6557611e65614bd4565b60200260200101518781518110611e7e57611e7e614bd4565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f069190614d3d565b8751805185908110611f1a57611f1a614bd4565b60200260200101818151611f2e9190614d5a565b6001600160601b03169052506001909101905b600101611d5b565b5050600101611862565b505050600080611f6d8a868a606001518b608001516108e4565b9150915081611fde5760405162461bcd60e51b8152602060048201526043602482015260008051602061525483398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610778565b8061203f5760405162461bcd60e51b8152602060048201526039602482015260008051602061525483398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610778565b5050600087826020015160405160200161205a929190614d79565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b61208a613859565b6120946000613b9f565b565b600054600290610100900460ff161580156120b8575060005460ff8083169116105b6120d45760405162461bcd60e51b815260040161077890614dc1565b6000805461ffff191660ff8316176101001790556120f182612ea2565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000818484604051612149929190614e0f565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146121a35760405162461bcd60e51b815260040161077890614e1f565b604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757071690639926ee7d906121f19085908590600401614edd565b600060405180830381600087803b15801561220b57600080fd5b505af115801561221f573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461226f5760405162461bcd60e51b815260040161077890614e1f565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a364f4da906024015b600060405180830381600087803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b5050505050565b6122f6613859565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a98fb355906122b9908490600401614f28565b60cb546001600160a01b031633146123825760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610778565b60005a90506000848460405160200161239c929190614bb9565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff90911690036123f1576040516311cb69a760e11b815260048101839052602401610778565b8054640100000000900460ff161561241f57604051634e78d7f960e11b815260048101839052602401610778565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca602052604090205410156124a25760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610778565b80546000906124b990849063ffffffff168761114e565b509050604360ff1681602001516000815181106124d8576124d8614bd4565b60200260200101516124ea9190614f3b565b6001600160601b03166064826000015160008151811061250c5761250c614bd4565b60200260200101516001600160601b03166125279190614f64565b10156125ba576064816000015160008151811061254657612546614bd4565b60200260200101516001600160601b03166125619190614f64565b604360ff16826020015160008151811061257d5761257d614bd4565b602002602001015161258f9190614f3b565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610778565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a6126069087614c0c565b6126139062011170614ba6565b61261d9190614f64565b9050826001015481111561265457600183015460405163437e283f60e11b8152600481019190915260248101829052604401610778565b6001600160a01b038716600090815260ca60205260408120805483929061267c908490614c0c565b90915550506001600160a01b038716600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156126f6573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff16158080156127215750600054600160ff909116105b8061273b5750303b15801561273b575060005460ff166001145b6127575760405162461bcd60e51b815260040161077890614dc1565b6000805460ff19166001179055801561277a576000805461ff0019166101001790555b6001600160a01b0384166127c057604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610778565b6001600160a01b03831661280a57604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610778565b6001600160a01b03821661285557604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610778565b61285f8484613bf1565b60cb80546001600160a01b0319166001600160a01b03841617905580156128c0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600084336040516020016128db929190614bb9565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff161561292a57604051630c40bc4360e21b815260048101829052602401610778565b34156129875733600090815260ca60205260408120805434929061294f908490614ba6565b909155505033600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a25b33600090815260ca60205260409020548211156129d85733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610778565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612a70913391908a908a908a90614f7b565b60405180910390a2505050505050565b606060007f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b069190614c61565b60ff16905080600003612b2757505060408051600081526020810190915290565b6000805b82811015612bd257604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbe9190614c1f565b612bc89083614ba6565b9150600101612b2b565b506000816001600160401b03811115612bed57612bed614110565b604051908082528060200260200182016040528015612c16578160200160208202803683370190505b5090506000805b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f9190614c61565b60ff16811015612e2257604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d379190614c1f565b905060005b81811015612e18576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa158015612db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd59190614c99565b60000151858581518110612deb57612deb614bd4565b6001600160a01b039092166020928302919091019091015283612e0d81614cdc565b945050600101612d3c565b5050600101612c1d565b5090949350505050565b612e34613859565b6001600160a01b038116612e995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610778565b61100a81613b9f565b612eaa613859565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190612f00908b908b908b908b908b908b908b908b90600401614fd2565b602060405180830381865afa158015612f1d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d89190615034565b6065546001600160a01b03163314612fd65760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610778565b60005b818110156132a157828282818110612ff357612ff3614bd4565b90506020028101906130059190615051565b6130169060408101906020016143f5565b6001600160a01b03166323b872dd333086868681811061303857613038614bd4565b905060200281019061304a9190615051565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156130a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c59190615034565b5060008383838181106130da576130da614bd4565b90506020028101906130ec9190615051565b6130fd9060408101906020016143f5565b604051636eb1769f60e11b81523060048201526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f81166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561316b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318f9190614c1f565b90508383838181106131a3576131a3614bd4565b90506020028101906131b59190615051565b6131c69060408101906020016143f5565b6001600160a01b031663095ea7b37f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f8387878781811061320857613208614bd4565b905060200281019061321a9190615051565b604001356132289190614ba6565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132979190615034565b5050600101612fd9565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f169063fce36c7d906121f190859085906004016150d8565b6000836132fe868585613c6e565b1495945050505050565b604080518082019091526000808252602082015261332461401e565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061335357fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610778565b505092915050565b60408051808201909152600080825260208201526133b561403c565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806133f057fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610778565b61343661405a565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201909152600080825260208201526000808061351e60008051602061521483398151915286614bea565b90505b61352a81613d6b565b90935091506000805160206152148339815191528283098303613563576040805180820190915290815260208101919091529392505050565b600080516020615214833981519152600182089050613521565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906135af61407f565b60005b600281101561376a5760006135c8826006614f64565b90508482600281106135dc576135dc614bd4565b602002015151836135ee836000614ba6565b600c81106135fe576135fe614bd4565b602002015284826002811061361557613615614bd4565b6020020151602001518382600161362c9190614ba6565b600c811061363c5761363c614bd4565b602002015283826002811061365357613653614bd4565b6020020151515183613666836002614ba6565b600c811061367657613676614bd4565b602002015283826002811061368d5761368d614bd4565b60200201515160016020020151836136a6836003614ba6565b600c81106136b6576136b6614bd4565b60200201528382600281106136cd576136cd614bd4565b6020020151602001516000600281106136e8576136e8614bd4565b6020020151836136f9836004614ba6565b600c811061370957613709614bd4565b602002015283826002811061372057613720614bd4565b60200201516020015160016002811061373b5761373b614bd4565b60200201518361374c836005614ba6565b600c811061375c5761375c614bd4565b6020020152506001016135b2565b5061377361409e565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b60606000806137a5846139f6565b61ffff166001600160401b038111156137c0576137c0614110565b6040519080825280601f01601f1916602001820160405280156137ea576020820181803683370190505b5090506000805b825182108015613802575061010081105b15612e22576001811b935085841615613849578060f81b83838151811061382b5761382b614bd4565b60200101906001600160f81b031916908160001a9053508160010191505b61385281614cdc565b90506137f1565b6033546001600160a01b031633146120945760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610778565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061396f84613ded565b9050808360ff166001901b116139ed5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610778565b90505b92915050565b6000805b82156139f057613a0b600184614c0c565b9092169180613a19816151f2565b9150506139fa565b60408051808201909152600080825260208201526102008261ffff1610613a7d5760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610778565b8161ffff16600103613a905750816139f0565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613af957600161ffff871660ff83161c81169003613adc57613ad98484613399565b93505b613ae68384613399565b92506201fffe600192831b169101613aac565b509195945050505050565b60408051808201909152600080825260208201528151158015613b2957506020820151155b15613b47575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206152148339815191528460200151613b7a9190614bea565b613b9290600080516020615214833981519152614c0c565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613c5c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610778565b613c6582613b9f565b610b42816138b3565b600060208451613c7e9190614bea565b15613d055760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610778565b8260205b85518111610d1657613d1c600285614bea565b600003613d4057816000528086015160205260406000209150600284049350613d59565b8086015160005281602052604060002091506002840493505b613d64602082614ba6565b9050613d09565b60008080600080516020615214833981519152600360008051602061521483398151915286600080516020615214833981519152888909090890506000613de1827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615214833981519152613f75565b91959194509092505050565b600061010082511115613e765760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610778565b8151600003613e8757506000919050565b60008083600081518110613e9d57613e9d614bd4565b0160200151600160f89190911c81901b92505b8451811015613f6c57848181518110613ecb57613ecb614bd4565b0160200151600160f89190911c1b9150828211613f605760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610778565b91811791600101613eb0565b50909392505050565b600080613f8061409e565b613f886140bc565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fc557fe5b50826140135760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610778565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061406d6140da565b815260200161407a6140da565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613b9a57600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561414857614148614110565b60405290565b60405161010081016001600160401b038111828210171561414857614148614110565b604051601f8201601f191681016001600160401b038111828210171561419957614199614110565b604052919050565b6000806001600160401b038411156141bb576141bb614110565b50601f8301601f19166020016141d081614171565b9150508281528383830111156141e557600080fd5b828260208301376000602084830101529392505050565b600082601f83011261420d57600080fd5b61421c838335602085016141a1565b9392505050565b6001600160a01b038116811461100a57600080fd5b600080600080600080600080610100898b03121561425557600080fd5b88359750602089013596506040890135955061427360608a016140f8565b94506080890135935060a08901356001600160401b0381111561429557600080fd5b6142a18b828c016141fc565b93505060c0890135915060e08901356142b981614223565b809150509295985092959890939650565b6000604082840312156142dc57600080fd5b6142e4614126565b823581526020928301359281019290925250919050565b600082601f83011261430c57600080fd5b614314614126565b80604084018581111561432657600080fd5b845b81811015614340578035845260209384019301614328565b509095945050505050565b60006080828403121561435d57600080fd5b614365614126565b905061437183836142fb565b815261438083604084016142fb565b602082015292915050565b60008060008061012085870312156143a257600080fd5b843593506143b386602087016142ca565b92506143c2866060870161434b565b91506143d18660e087016142ca565b905092959194509250565b6000602082840312156143ee57600080fd5b5035919050565b60006020828403121561440757600080fd5b81356139ed81614223565b602080825282518282018190526000918401906040840190835b818110156143405783516001600160a01b031683526020938401939092019160010161442c565b801515811461100a57600080fd5b60006020828403121561447357600080fd5b81356139ed81614453565b803563ffffffff81168114613b9a57600080fd5b60006001600160401b038211156144ab576144ab614110565b5060051b60200190565b600082601f8301126144c657600080fd5b81356144d96144d482614492565b614171565b8082825260208201915060208360051b8601019250858311156144fb57600080fd5b602085015b8381101561451f576145118161447e565b835260209283019201614500565b5095945050505050565b600082601f83011261453a57600080fd5b81356145486144d482614492565b8082825260208201915060208360061b86010192508583111561456a57600080fd5b602085015b8381101561451f5761458187826142ca565b835260209092019160400161456f565b600082601f8301126145a257600080fd5b81356145b06144d482614492565b8082825260208201915060208360051b8601019250858311156145d257600080fd5b602085015b8381101561451f5780356001600160401b038111156145f557600080fd5b614604886020838a01016144b5565b845250602092830192016145d7565b6000610180828403121561462657600080fd5b61462e61414e565b905081356001600160401b0381111561464657600080fd5b614652848285016144b5565b82525060208201356001600160401b0381111561466e57600080fd5b61467a84828501614529565b60208301525060408201356001600160401b0381111561469957600080fd5b6146a584828501614529565b6040830152506146b8836060840161434b565b60608201526146ca8360e084016142ca565b60808201526101208201356001600160401b038111156146e957600080fd5b6146f5848285016144b5565b60a0830152506101408201356001600160401b0381111561471557600080fd5b614721848285016144b5565b60c0830152506101608201356001600160401b0381111561474157600080fd5b61474d84828501614591565b60e08301525092915050565b60008060006060848603121561476e57600080fd5b8335925061477e6020850161447e565b915060408401356001600160401b0381111561479957600080fd5b6147a586828701614613565b9150509250925092565b600081518084526020840193506020830160005b828110156147ea5781516001600160601b03168652602095860195909101906001016147c3565b5093949350505050565b604081526000835160408084015261480f60808401826147af565b90506020850151603f1984830301606085015261482c82826147af565b925050508260208301529392505050565b60008083601f84011261484f57600080fd5b5081356001600160401b0381111561486657600080fd5b60208301915083602082850101111561487e57600080fd5b9250929050565b60008060006040848603121561489a57600080fd5b83356001600160401b038111156148b057600080fd5b6148bc8682870161483d565b909790965060209590950135949350505050565b600080604083850312156148e357600080fd5b82356148ee81614223565b915060208301356001600160401b0381111561490957600080fd5b83016060818603121561491b57600080fd5b604051606081016001600160401b038111828210171561493d5761493d614110565b60405281356001600160401b0381111561495657600080fd5b614962878285016141fc565b8252506020828101359082015260409182013591810191909152919491935090915050565b60006020828403121561499957600080fd5b81356001600160401b038111156149af57600080fd5b8201601f810184136149c057600080fd5b6149cf848235602084016141a1565b949350505050565b6000806000606084860312156149ec57600080fd5b83359250602084013561477e81614223565b600080600060608486031215614a1357600080fd5b8335614a1e81614223565b92506020840135614a2e81614223565b91506040840135614a3e81614223565b809150509250925092565b60008060008060608587031215614a5f57600080fd5b8435935060208501356001600160401b03811115614a7c57600080fd5b614a888782880161483d565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614ab657600080fd5b873596506020880135955060408801359450614ad4606089016140f8565b93506080880135925060a08801356001600160401b03811115614af657600080fd5b614b028a828b016141fc565b979a969950949793969295929450505060c09091013590565b60008060208385031215614b2e57600080fd5b82356001600160401b03811115614b4457600080fd5b8301601f81018513614b5557600080fd5b80356001600160401b03811115614b6b57600080fd5b8560208260051b8401011115614b8057600080fd5b6020919091019590945092505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156139f0576139f0614b90565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614c0757634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156139f0576139f0614b90565b600060208284031215614c3157600080fd5b5051919050565b600060208284031215614c4a57600080fd5b81516001600160c01b03811681146139ed57600080fd5b600060208284031215614c7357600080fd5b815160ff811681146139ed57600080fd5b6001600160601b038116811461100a57600080fd5b60006040828403128015614cac57600080fd5b50614cb5614126565b8251614cc081614223565b81526020830151614cd081614c84565b60208201529392505050565b600060018201614cee57614cee614b90565b5060010190565b600060208284031215614d0757600080fd5b81516139ed81614223565b600060208284031215614d2457600080fd5b815167ffffffffffffffff19811681146139ed57600080fd5b600060208284031215614d4f57600080fd5b81516139ed81614c84565b6001600160601b0382811682821603908111156139f0576139f0614b90565b63ffffffff60e01b8360e01b16815260006004820183516020850160005b82811015614db5578151845260209384019390910190600101614d97565b50919695505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015614ebd57602081850181015186830182015201614ea1565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b0383168152604060208201526000825160606040840152614f0760a0840182614e97565b90506020840151606084015260408401516080840152809150509392505050565b60208152600061421c6020830184614e97565b6001600160601b038181168382160290811690818114614f5d57614f5d614b90565b5092915050565b80820281158282048414176139f0576139f0614b90565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b8881528760208201528660408201526001600160601b03198616606082015284608082015261010060a0820152600061500f610100830186614e97565b60c0830194909452506001600160a01b039190911660e0909101529695505050505050565b60006020828403121561504657600080fd5b81516139ed81614453565b60008235609e1983360301811261506757600080fd5b9190910192915050565b8035613b9a81614223565b81835260208301925060008160005b848110156147ea57813561509e81614223565b6001600160a01b0316865260208201356150b781614c84565b6001600160601b03166020870152604095860195919091019060010161508b565b6020808252810182905260006040600584901b830181019083018583609e1936839003015b878210156151e557868503603f19018452823581811261511c57600080fd5b8901803536829003601e1901811261513357600080fd5b81016020810190356001600160401b0381111561514f57600080fd5b8060061b360382131561516157600080fd5b60a0885261517360a08901828461507c565b91505061518260208301615071565b6001600160a01b03166020880152604082810135908801526151a66060830161447e565b63ffffffff1660608801526151bd6080830161447e565b63ffffffff8116608089015291509550506020938401939290920191600191909101906150fd565b5092979650505050505050565b600061ffff821661ffff810361520a5761520a614b90565b6001019291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a2646970667358221220f0c59c77b7d074bcdb7b19f8c2809464f2595d1d7275a6efdc21b02475ba3c0064736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x82e01223d51eb87e16a03e24687edf0f294da6f1":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea264697066735822122061fa9cc8916c2122543914d684bb9f917137a2515c322ada32d64f60e70550cb64736f6c634300080c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8"}},"0x851356ae760d987e095750cceb3bc6014560891c":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120001","0x0000000000000000000000000000000000000000000000000000000000000001":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000064":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000096":"0x0000000000000000000000000000000000000000000000000000000000000001","0x000000000000000000000000000000000000000000000000000000000000009c":"0x0000000000000000000000000000000000000000000000000000000000000003","0x000000000000000000000000000000000000000000000000000000000000009d":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000000000000000000000000000000000000000009e":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd00","0x683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c7":"0x00000000000000000000000000000000000000000000000000322af8000000c8","0xaf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c":"0x00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","0xaf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539d":"0x000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e","0xaf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539e":"0x000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}},"0x8a791620dd6260079bf849dc5567adc3f2fdc318":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000097":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000098":"0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000000000000000000c9":"0x000000000000000000000000000000000000000000000000000000000000000a","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0x8f86403a4de0bb5791fa46b8e795c547942fe4cf":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a4c565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a65565b6102a261029d366004611a7c565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa6565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b61034461033f366004611a7c565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611aee565b6109b8565b6103f26103ed366004611b4b565b610e0b565b6040516101529190611bc4565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a4c565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146104ac5760405162461bcd60e51b81526004016104a390611c0d565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146105fc5760405162461bcd60e51b81526004016104a390611c0d565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c81565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614610a025760405162461bcd60e51b81526004016104a390611c0d565b6000610a30610a1936869003860160408701611cfb565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611ead83398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611ead83398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611ead83398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2e565b6040516020818303038152906040528051906020012060001c610c419190611d70565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cfb565b90611307565b610c7436899003890189611cfb565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cfb565b610cd6368a90038a0160808b01611dd7565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611ead83398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e18565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce5565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce5565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e58565b81548110610f9a57610f9a611ce5565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e58565b858581518110610fd557610fd5611ce5565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e6b565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146110625760405162461bcd60e51b81526004016104a390611c0d565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce5565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e58565b8154811061121657611216611ce5565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e82565b905084826002811061154957611549611ce5565b6020020151518361155b836000611e99565b600c811061156b5761156b611ce5565b602002015284826002811061158257611582611ce5565b602002015160200151838260016115999190611e99565b600c81106115a9576115a9611ce5565b60200201528382600281106115c0576115c0611ce5565b60200201515151836115d3836002611e99565b600c81106115e3576115e3611ce5565b60200201528382600281106115fa576115fa611ce5565b6020020151516001602002015183611613836003611e99565b600c811061162357611623611ce5565b602002015283826002811061163a5761163a611ce5565b60200201516020015160006002811061165557611655611ce5565b602002015183611666836004611e99565b600c811061167657611676611ce5565b602002015283826002811061168d5761168d611ce5565b6020020151602001516001600281106116a8576116a8611ce5565b6020020151836116b9836005611e99565b600c81106116c9576116c9611ce5565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d70565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e58565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b9150602083013567ffffffffffffffff8111156119d957600080fd5b8301601f810185136119ea57600080fd5b803567ffffffffffffffff811115611a0457611a04611931565b611a17601f8201601f1916602001611970565b818152866020838501011115611a2c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208284031215611a5e57600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8f57600080fd5b611a9883611905565b946020939093013593505050565b600080600060608486031215611abb57600080fd5b611ac484611905565b9250602084013563ffffffff81168114611add57600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0557600080fd5b611b0e856118cc565b9350610100601f1982011215611b2357600080fd5b602085019250604061011f1982011215611b3c57600080fd5b50610120840190509250925092565b600080600060408486031215611b6057600080fd5b833567ffffffffffffffff811115611b7757600080fd5b8401601f81018613611b8857600080fd5b803567ffffffffffffffff811115611b9f57600080fd5b866020828401011115611bb157600080fd5b6020918201979096509401359392505050565b602080825282518282018190526000918401906040840190835b81811015611c0257835163ffffffff16835260209384019390920191600101611bde565b509095945050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b0384168152826020820152606060408201526000825180606084015260005b81811015611cc35760208186018101516080868401015201611ca6565b506000608082850101526080601f19601f830116840101915050949350505050565b634e487b7160e01b600052603260045260246000fd5b60006040828403128015611d0e57600080fd5b50611d17611947565b823581526020928301359281019290925250919050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8d57634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611da357600080fd5b611dab611947565b806040840185811115611dbd57600080fd5b845b81811015611c02578035845260209384019301611dbf565b60006080828403128015611dea57600080fd5b50611df3611947565b611dfd8484611d92565b8152611e0c8460408501611d92565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e42565b600081611e7a57611e7a611e42565b506000190190565b80820281158282048414176106ff576106ff611e42565b808201808211156106ff576106ff611e4256fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a2646970667358221220e98098f8396e49039e387b6fa81db3dc69781677ba6e4071b0b6a30889295d3664736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x90f79bf6eb2c4f870365e785982e1f101e93b906":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x95401dc811bb5740090279ba06cfa8fcf6113778":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","storage":{"0x0eb5be412f275a18f6e4d622aee4ff40b21467c926224771b782d4c095d1444b":"0x0000000000000000000000000000000000000000000000000000000000000007","0x17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec":"0x0000000000000000000000000000000000000000000000000000000000000001","0x295841a49a1089f4b560f91cfbb0133326654dcbb1041861fc5dde96c724a22f":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x00000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf","0x3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff":"0x0000000000000000000000000000000000000000000000000000000000000001","0xa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49":"0x0000000000000000000000000000000000000000000000000000000000000001","0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5":"0x0000000000000000000000000000000000000000000000000000000000000001","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042","0xcfb339bd1c51c488f6134f4ac63d1594afad827b3401c3fc51ed1da74a8ca14e":"0x000000000de0b6b3a7640000c5a5c42992decbae36851359345fe25997f5c42d"}},"0x959922be3caee4b8cd9a407cc3ac1c251c2007b1":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd5565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d13565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d60565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d7d565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610dc7565b6105b35760405162461bcd60e51b815260040161051990610de9565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610dc7565b61070d5760405162461bcd60e51b815260040161051990610de9565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d60565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d7d565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff80821115610c8b57600080fd5b818501915085601f830112610c9f57600080fd5b813581811115610cae57600080fd5b8660208260051b8501011115610cc357600080fd5b60209290920196919550909350505050565b600080600060608486031215610cea57600080fd5b8335610cf581610af7565b9250610d0360208501610b0c565b9150604084013590509250925092565b60008060008060808587031215610d2957600080fd5b8435610d3481610af7565b9350610d4260208601610b0c565b9250610d5060408601610b0c565b9396929550929360600135925050565b600060208284031215610d7257600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dd957600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea264697066735822122073763b5180077a8bc6ac9f9f13d1ff53a2202a0e325b92566fd1ff7df689217864736f6c63430008180033","storage":{}},"0x976ea74026e726554db657fa54763abd0c3a0aa9":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x9965507d1a55bcc2695c58ba16fb37d819b0a4dc":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x998abeb3e57409262ae5b751f60747921b33613e":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","storage":{"0x17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec":"0x0000000000000000000000000000000000000000000000000000000000000001","0x295841a49a1089f4b560f91cfbb0133326654dcbb1041861fc5dde96c724a22f":"0x0000000000000007000000000000000000000000000000000000000000000000","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}},"0x99bba657f2bbc93c02d617f8ba121cb8fc104acf":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d89565b610959565b604051610217929190612e29565b6102b56102b0366004612e4e565b610c15565b6040516102179190612e7a565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4e565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4e565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f85565b610ccd565b61035d610358366004612d89565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc366004613046565b611240565b6040516102179190613098565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130d6565b61152d565b6040516102179190613109565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461315a565b6116ce565b61027f610495366004613184565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d136600461324f565b6118e9565b6102546104e436600461329c565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132d9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b610254610559366004613315565b611ac3565b61041461056c366004612e4e565b611b58565b61025461057f3660046132d9565b611c41565b61027f610592366004613357565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133b4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b49190613405565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613422565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133b4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561349e565b905060200201602081019061084a91906134b4565b8289898481811061085d5761085d61349e565b90506020020135815481106108745761087461349e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61349e565b90506020020135815481106108f4576108f461349e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61349e565b905060200201602081019061093091906134b4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146109a45760405162461bcd60e51b8152600401610611906134cf565b6000836001600160401b038111156109be576109be612ef4565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612ef4565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61349e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361349e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61349e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f9190613405565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613422565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133b4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61349e565b602002602001015181548110610ea357610ea361349e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161349e565b602002602001015181548110610f1957610f1961349e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613557565b81548110610f6957610f6961349e565b9060005260206000200183878381518110610f8657610f8661349e565b602002602001015181548110610f9e57610f9e61349e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161356a565b6000828152602081208201600019908101919091550190558154829061101990600190613557565b815481106110295761102961349e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61349e565b6020026020010151815481106110725761107261349e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061356a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461112d5760405162461bcd60e51b8152600401610611906134cf565b6000805b8381101561123657600085858381811061114d5761114d61349e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612ef4565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761349e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61349e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613557565b6114699190613557565b815481106114795761147961349e565b60009182526020909120015463ffffffff16116114d757600161149c8284613557565b6114a69190613557565b8585815181106114b8576114b861349e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61349e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117509190613405565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613422565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133b4565b6117c283836123f7565b505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461180f5760405162461bcd60e51b8152600401610611906134cf565b60005b818110156118e357600083838381811061182e5761182e61349e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b9190613405565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613422565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133b4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613557565b81548110611a8c57611a8c61349e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613557565b81548110611bec57611bec61349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61349e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614611cea5760405162461bcd60e51b8152600401610611906134cf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91692639004134792611ea1928c9201613580565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135e2565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761349e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561349e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61349e565b6020026020010151611fae919061366d565b611fb89190613684565b611fc290866136a6565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613557565b815481106120fe576120fe61349e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613557565b815481106122b4576122b461349e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374b83398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136c5565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374b83398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136c5565b811015612646578482815181106125895761258961349e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861349e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61349e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661349e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61349e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261349e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61349e565b60200260200101516000015186848151811061285d5761285d61349e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613557565b81548110612a6c57612a6c61349e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613557565b925050506114ee565b80612aa1816136d8565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136ef565b600080821215612baa57612b998261370f565b612ba3908461372b565b9050610cae565b612ba382846136a6565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b03811115612d0057600080fd5b612d0c88828901612c80565b90955093505060408601356001600160401b03811115612d2b57600080fd5b612d3788828901612c80565b969995985093965092949392505050565b60008083601f840112612d5a57600080fd5b5081356001600160401b03811115612d7157600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9f57600080fd5b8435612daa81612c31565b93506020850135925060408501356001600160401b03811115612dcc57600080fd5b612dd887828801612d48565b95989497509550505050565b600081518084526020840193506020830160005b82811015612e1f5781516001600160601b0316865260209586019590910190600101612df8565b5093949350505050565b604081526000612e3c6040830185612de4565b82810360208401526123ee8185612de4565b60008060408385031215612e6157600080fd5b82359150612e7160208401612bb4565b90509250929050565b602080825282518282018190526000918401906040840190835b81811015612ee957612ed383855163ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b6020939093019260609290920191600101612e94565b509095945050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2c57612f2c612ef4565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5a57612f5a612ef4565b604052919050565b60006001600160401b03821115612f7b57612f7b612ef4565b5060051b60200190565b60008060408385031215612f9857600080fd5b612fa183612bb4565b915060208301356001600160401b03811115612fbc57600080fd5b8301601f81018513612fcd57600080fd5b8035612fe0612fdb82612f62565b612f32565b8082825260208201915060208360051b85010192508783111561300257600080fd5b6020840193505b82841015613024578335825260209384019390910190613009565b809450505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305b57600080fd5b61306484613032565b925060208401356001600160401b0381111561307f57600080fd5b61308b86828701612d48565b9497909650939450505050565b602080825282518282018190526000918401906040840190835b81811015612ee957835163ffffffff168352602093840193909201916001016130b2565b6000806000606084860312156130eb57600080fd5b6130f484612bb4565b95602085013595506040909401359392505050565b60608101610cae828463ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561316d57600080fd5b61317683612bb4565b9150612e7160208401613143565b60008060006040848603121561319957600080fd5b8335925060208401356001600160401b0381111561307f57600080fd5b600082601f8301126131c757600080fd5b81356131d5612fdb82612f62565b8082825260208201915060208360061b8601019250858311156131f757600080fd5b602085015b83811015611236576040818803121561321457600080fd5b61321c612f0a565b813561322781612c31565b815261323560208301613143565b6020820152808452506020830192506040810190506131fc565b6000806040838503121561326257600080fd5b61326b83612bb4565b915060208301356001600160401b0381111561328657600080fd5b613292858286016131b6565b9150509250929050565b6000806000606084860312156132b157600080fd5b6132ba84612bb4565b92506132c860208501613032565b929592945050506040919091013590565b6000806000606084860312156132ee57600080fd5b833592506132fe60208501612bb4565b915061330c60408501613032565b90509250925092565b6000806000806080858703121561332b57600080fd5b61333485612bb4565b935061334260208601613032565b93969395505050506040820135916060013590565b60008060006060848603121561336c57600080fd5b61337584612bb4565b925061338360208501613143565b915060408401356001600160401b0381111561339e57600080fd5b6133aa868287016131b6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561341757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134c657600080fd5b6114ee82613143565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613541565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0383168152604060208083018290528354918301829052600084815290812090916060840190835b818110156135d65783546001600160a01b03168352600193840193602090930192016135af565b50909695505050505050565b6000602082840312156135f457600080fd5b81516001600160401b0381111561360a57600080fd5b8201601f8101841361361b57600080fd5b8051613629612fdb82612f62565b8082825260208201915060208360051b85010192508683111561364b57600080fd5b6020840193505b82841015612276578351825260209384019390910190613652565b8082028115828204841417610cae57610cae613541565b6000826136a157634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b038181168382160190811115610cae57610cae613541565b80820180821115610cae57610cae613541565b6000816136e7576136e7613541565b506000190190565b818103600083128015838313168383128216171561062b5761062b613541565b6000600160ff1b820161372457613724613541565b5060000390565b6001600160601b038281168282160390811115610cae57610cae61354156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a264697066735822122066c84d910ac323d5558756abc711b3f82c77555706bfedf06be866ca6602f4ca64736f6c634300081b0033","storage":{}},"0x9a676e781a523b5d0c0e43731313a708cb607508":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b3d565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b83565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611bf5565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c12565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c5c565b6104cb5760405162461bcd60e51b815260040161042e90611c7e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c5c565b6107345760405162461bcd60e51b815260040161042e90611c7e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611d988339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c5c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cc6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611bf5565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c12565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611cf5565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d4c565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d76565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b915060208381013567ffffffffffffffff80821115611a9257600080fd5b9085019060608288031215611aa657600080fd5b611aae6119fc565b823582811115611abd57600080fd5b8301601f81018913611ace57600080fd5b803583811115611ae057611ae06119e6565b611af2601f8201601f19168701611a25565b93508084528986828401011115611b0857600080fd5b808683018786013760008682860101525050818152838301358482015260408301356040820152809450505050509250929050565b60008060008060808587031215611b5357600080fd5b8435611b5e8161188d565b93506020850135611b6e8161188d565b93969395505050506040820135916060013590565b60008060208385031215611b9657600080fd5b823567ffffffffffffffff80821115611bae57600080fd5b818501915085601f830112611bc257600080fd5b813581811115611bd157600080fd5b866020828501011115611be357600080fd5b60209290920196919550909350505050565b600060208284031215611c0757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c6e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b8281526000602060406020840152835180604085015260005b81811015611d2a57858101830151858201606001528201611d0e565b506000606082860101526060601f19601f830116850101925050509392505050565b600060208284031215611d5e57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a264697066735822122016d51116de2d4e6ebc6b9dfa2dada06d1f6e51f6dc472774de5d172aa09dda6d64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae":{"nonce":1,"balance":"0x0","code":"0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125b8565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d90612609565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca008361267d565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126a7565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f3833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126cf565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126ec565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a309190612736565b610a4c5760405162461bcd60e51b815260040161071d90612758565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d90612609565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321383398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321383398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca008261267d565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a0565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127bc565b9250846001600160a01b03166000805160206131f383398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126a7565b90915550506040518381526001600160a01b038616906000805160206131f38339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c79190612736565b6110e35760405162461bcd60e51b815260040161071d90612758565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127f8565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128e561090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612862565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d90612609565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca008261267d565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b6020526040812054611545908390612877565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca008361289e565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126a7565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a0565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f3833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b2565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126cf565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126ec565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a0565b905061090b565b611e408383612877565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128cb565b9091555060408051610940810190915261090e8082526000916120a491839133916128e56020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612862565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff8082111561257457600080fd5b61258089838a016124fb565b9097509550602088013591508082111561259957600080fd5b506125a6888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125ce57600080fd5b84356125d9816123f6565b935060208501356125e9816123f6565b925060408501356125f9816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261268c5761268c612667565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126c7576126c7612691565b505092915050565b6000602082840312156126e157600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274857600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127b5576127b5612691565b5060000390565b8181038181111561090b5761090b612691565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061280c6060830187896127cf565b828103602084015261281f8186886127cf565b9150508260408301529695505050505050565b6000815160005b818110156128535760208185018101518683015201612839565b50600093019283525090919050565b60006123ee6128718386612832565b84612832565b818103600083128015838313168383128216171561289757612897612691565b5092915050565b6000826128ad576128ad612667565b500790565b6000602082840312156128c457600080fd5b5051919050565b6000600182016128dd576128dd612691565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220517f086e259f6d4f92497674fa8b87966eef35c1226b2e6369f2a0bdacf2836964736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x9e545e3c0baab3e08cdfd552c960a1050f373042":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212208c9b9e088f3575078e1e546bdacf514367bf3b048de9f62c408ca085a2a59c4b64736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"}},"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0":{"nonce":1,"balance":"0x0","code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220d9b5867338741992fb34ad4d7cbd0a6be2f72f88e519e77dfae6583d2333734564736f6c63430008180033","storage":{}},"0xa0ee7a142d267c1f36714e4a8f75612f20a79720":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614954565b610de8565b005b6103da6103ea3660046149a7565b610f2d565b6103da6103fd3660046149cb565b610fe0565b6103da610410366004614a0c565b611097565b6103da610423366004614a25565b6111d6565b61035a6104363660046149a7565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149cb565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a90565b611218565b6103da6104bc3660046149cb565b61135c565b61035a6104cf3660046149a7565b609b6020526000908152604090205481565b6103da6104ef366004614b37565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b6105413660046149a7565b6001600160a01b039081166000908152609960205260409020600101541690565b6105756105703660046149a7565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e3c565b611626565b610575610606366004614e78565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614ea9565b611656565b6103da610644366004614a0c565b6116ef565b61051b6106573660046149a7565b609a602052600090815260409020546001600160a01b031681565b6105756106803660046149a7565b611700565b6103da611721565b61035a61069b366004614f38565b609860209081526000928352604080842090915290825290205481565b6103da6106c6366004615019565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150a9565b611961565b6040516103649190615134565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da610738366004615147565b611a33565b61035a61074b3660046149a7565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a0c565b609e6020526000908152604090205460ff1681565b6105756107b536600461517c565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec3660046149a7565b60a16020526000908152604090205481565b61086e61080c3660046149a7565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151a8565b611b05565b61035a62034bc081565b6108d46108cf3660046149a7565b611bbe565b60405161036492919061522a565b6103ba6108f03660046149a7565b611f75565b6103da61090336600461524f565b61242e565b6103da6109163660046152a7565b61254b565b6103da6109293660046149a7565b6125dc565b61035a612652565b6103da610944366004614a0c565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152c3565b905060200201602081019061098691906149a7565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152d9565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614bd9565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152c3565b9050602002810190610b4e9190615310565b610b5c906020810190615330565b9050878783818110610b7057610b706152c3565b9050602002810190610b829190615310565b610b8c9080615330565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152c3565b9050602002810190610c269190615310565b610c379060608101906040016149a7565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152c3565b9050602002810190610cdc9190615310565b610ced9060608101906040016149a7565b8a8a86818110610cff57610cff6152c3565b9050602002810190610d119190615310565b610d1b9080615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152c3565b9050602002810190610d739190615310565b610d81906020810190615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152c3565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615379565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153cb565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa491906153fa565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615417565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab590615461565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154be565b61111f5760405162461bcd60e51b8152600401610ab5906154db565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab590615461565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152c3565b90506020028101906114bd9190615523565b8989848181106114cf576114cf6152c3565b90506020028101906114e19190615330565b8989868181106114f3576114f36152c3565b9050602002013588888781811061150c5761150c6152c3565b90506020020160208101906115219190615539565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154be565b6115e75760405162461bcd60e51b8152600401610ab5906154db565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155ca565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614bd9565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152c3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152c3565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153cb565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5291906155dd565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea9190810190615655565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152c3565b602002602001018181525050611f68565b8351611dc7906001615725565b6001600160401b03811115611dde57611dde614bd9565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614bd9565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152c3565b6020026020010151838281518110611e8757611e876152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152c3565b6020026020010151828281518110611ed357611ed36152c3565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615738565b81518110611f1b57611f1b6152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615738565b81518110611f5b57611f5b6152c3565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152d9565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614bd9565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152c3565b602002602001015182600081518110612396576123966152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152c3565b6020026020010151816000815181106123e3576123e36152c3565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152c3565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270691906153fa565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615417565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152c3565b602002602001015186858151811061295b5761295b6152c3565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152c3565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152c3565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152c3565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154be565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152c3565b6020026020010151868581518110612c5a57612c5a6152c3565b60200260200101516040518463ffffffff1660e01b8152600401612c809392919061574b565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361576f565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d999083908590615788565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157a1565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157a1565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c82826157de565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615379565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152d9565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152c3565b6020026020010151858581518110613220576132206152c3565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615738565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f9392919061574b565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152c3565b90506020020160208101906134be91906149a7565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152c3565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615725565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f9392919061574b565b60006139776105f387615841565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157a1565b63ffffffff16613a1d9190615725565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab560608701604088016149a7565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615330565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615330565b9050811015613d23574360a16000613c0b60a08b018b615330565b85818110613c1b57613c1b6152c3565b9050602002016020810190613c3091906149a7565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157a1565b63ffffffff16613c6a9190615725565b1115613c885760405162461bcd60e51b8152600401610ab59061584d565b613d1b613c9860208901896149a7565b33613ca660a08b018b615330565b85818110613cb657613cb66152c3565b9050602002016020810190613ccb91906149a7565b613cd860c08c018c615330565b86818110613ce857613ce86152c3565b905060200201358a8a87818110613d0157613d016152c3565b9050602002016020810190613d1691906149a7565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615330565b9050811015614114574360a16000613d6c60a08c018c615330565b85818110613d7c57613d7c6152c3565b9050602002016020810190613d9191906149a7565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157a1565b63ffffffff16613dcb9190615725565b1115613de95760405162461bcd60e51b8152600401610ab59061584d565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615330565b83818110613e1b57613e1b6152c3565b9050602002016020810190613e3091906149a7565b6001600160a01b031603613f7f576000613e4d60208a018a6149a7565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615330565b87818110613e9e57613e9e6152c3565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1691906155dd565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615330565b88818110613f5c57613f5c6152c3565b9050602002016020810190613f7191906149a7565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152c3565b9050602002016020810190613fd691906149a7565b613fe360a08d018d615330565b86818110613ff357613ff36152c3565b905060200201602081019061400891906149a7565b61401560c08e018e615330565b87818110614025576140256152c3565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615330565b858181106140ce576140ce6152c3565b90506020020160208101906140e391906149a7565b6140f060c08d018d615330565b86818110614100576141006152c3565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061419290869086906004016158d5565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d3919061592c565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b1300906143809088908890879060040161574b565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615956565b036144f25750565b600181600481111561450657614506615956565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615956565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615956565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615956565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615725565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b6020808252825182820181905260009190848201906040850190845b818110156148ef578351835292840192918401916001016148d3565b50909695505050505050565b60006060828403121561490d57600080fd5b50919050565b60008083601f84011261492557600080fd5b5081356001600160401b0381111561493c57600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561496957600080fd5b61497385856148fb565b925060608401356001600160401b0381111561498e57600080fd5b61499a86828701614913565b9497909650939450505050565b6000602082840312156149b957600080fd5b81356149c481614837565b9392505050565b6000806000606084860312156149e057600080fd5b83356149eb81614837565b925060208401356149fb81614837565b929592945050506040919091013590565b600060208284031215614a1e57600080fd5b5035919050565b60008060008060408587031215614a3b57600080fd5b84356001600160401b0380821115614a5257600080fd5b614a5e888389016147b2565b90965094506020870135915080821115614a7757600080fd5b50614a84878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aac57600080fd5b8835614ab781614837565b97506020890135614ac781614837565b9650604089013595506060890135945060808901356001600160401b0380821115614af157600080fd5b614afd8c838d016147b2565b909650945060a08b0135915080821115614b1657600080fd5b50614b238b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b5357600080fd5b88356001600160401b0380821115614b6a57600080fd5b614b768c838d016147b2565b909a50985060208b0135915080821115614b8f57600080fd5b614b9b8c838d016147b2565b909850965060408b0135915080821115614bb457600080fd5b614bc08c838d016147b2565b909650945060608b0135915080821115614b1657600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1157614c11614bd9565b60405290565b604080519081016001600160401b0381118282101715614c1157614c11614bd9565b604051601f8201601f191681016001600160401b0381118282101715614c6157614c61614bd9565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c69565b60006001600160401b03821115614c9f57614c9f614bd9565b5060051b60200190565b600082601f830112614cba57600080fd5b81356020614ccf614cca83614c86565b614c39565b8083825260208201915060208460051b870101935086841115614cf157600080fd5b602086015b84811015614d16578035614d0981614837565b8352918301918301614cf6565b509695505050505050565b600082601f830112614d3257600080fd5b81356020614d42614cca83614c86565b8083825260208201915060208460051b870101935086841115614d6457600080fd5b602086015b84811015614d165780358352918301918301614d69565b600060e08284031215614d9257600080fd5b614d9a614bef565b9050614da58261484c565b8152614db36020830161484c565b6020820152614dc46040830161484c565b604082015260608201356060820152614ddf60808301614c7b565b608082015260a08201356001600160401b0380821115614dfe57600080fd5b614e0a85838601614ca9565b60a084015260c0840135915080821115614e2357600080fd5b50614e3084828501614d21565b60c08301525092915050565b600060208284031215614e4e57600080fd5b81356001600160401b03811115614e6457600080fd5b614e7084828501614d80565b949350505050565b600060208284031215614e8a57600080fd5b813560ff811681146149c457600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ec157600080fd5b85356001600160401b0380821115614ed857600080fd5b9087019060e0828a031215614eec57600080fd5b90955060208701359080821115614f0257600080fd5b50614f0f888289016147b2565b909550935050604086013591506060860135614f2a81614e9b565b809150509295509295909350565b60008060408385031215614f4b57600080fd5b8235614f5681614837565b91506020830135614f6681614837565b809150509250929050565b600060408284031215614f8357600080fd5b614f8b614c17565b905081356001600160401b0380821115614fa457600080fd5b818401915084601f830112614fb857600080fd5b8135602082821115614fcc57614fcc614bd9565b614fde601f8301601f19168201614c39565b92508183528681838601011115614ff457600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a0868803121561503157600080fd5b853561503c81614837565b9450602086013561504c81614837565b935060408601356001600160401b038082111561506857600080fd5b61507489838a01614f71565b9450606088013591508082111561508a57600080fd5b5061509788828901614f71565b95989497509295608001359392505050565b600080604083850312156150bc57600080fd5b82356150c781614837565b915060208301356001600160401b038111156150e257600080fd5b6150ee85828601614ca9565b9150509250929050565b60008151808452602080850194506020840160005b838110156151295781518752958201959082019060010161510d565b509495945050505050565b6020815260006149c460208301846150f8565b6000806020838503121561515a57600080fd5b82356001600160401b0381111561517057600080fd5b61482b85828601614913565b6000806040838503121561518f57600080fd5b823561519a81614837565b946020939093013593505050565b600080600080608085870312156151be57600080fd5b84356151c981614837565b93506020850135925060408501356151e081614837565b9396929550929360600135925050565b60008151808452602080850194506020840160005b838110156151295781516001600160a01b031687529582019590820190600101615205565b60408152600061523d60408301856151f0565b828103602084015261120f81856150f8565b60008060006060848603121561526457600080fd5b833561526f81614837565b925060208401356001600160401b0381111561528a57600080fd5b61529686828701614f71565b925050604084013590509250925092565b6000606082840312156152b957600080fd5b6149c483836148fb565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261532657600080fd5b9190910192915050565b6000808335601e1984360301811261534757600080fd5b8301803591506001600160401b0382111561536157600080fd5b6020019150600581901b36038213156144cf57600080fd5b60608101823561538881614837565b6001600160a01b0390811683526020840135906153a482614837565b16602083015260408301356153b881614c69565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561540c57600080fd5b81516149c481614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154d057600080fd5b81516149c481614e9b565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261532657600080fd5b60006020828403121561554b57600080fd5b81356149c481614e9b565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a08501526155b160e08501826151f0565b905060c083015184820360c086015261120f82826150f8565b6020815260006149c46020830184615556565b6000602082840312156155ef57600080fd5b5051919050565b600082601f83011261560757600080fd5b81516020615617614cca83614c86565b8083825260208201915060208460051b87010193508684111561563957600080fd5b602086015b84811015614d16578051835291830191830161563e565b6000806040838503121561566857600080fd5b82516001600160401b038082111561567f57600080fd5b818501915085601f83011261569357600080fd5b815160206156a3614cca83614c86565b82815260059290921b840181019181810190898411156156c257600080fd5b948201945b838610156156e95785516156da81614837565b825294820194908201906156c7565b9188015191965090935050508082111561570257600080fd5b506150ee858286016155f6565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261570f565b818103818111156109c2576109c261570f565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157815761578161570f565b5060010190565b828152604060208201526000614e706040830184615556565b6000602082840312156157b357600080fd5b81356149c481614c69565b80546001600160a01b0319166001600160a01b0392909216919091179055565b81356157e981614837565b6157f381836157be565b5060018101602083013561580681614837565b61581081836157be565b50604083013561581f81614c69565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d80565b6020808252606e9082015260008051602061596d83398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b8281526000602060406020840152835180604085015260005b8181101561590a578581018301518582016060015282016158ee565b506000606082860101526060601f19601f830116850101925050509392505050565b60006020828403121561593e57600080fd5b81516001600160e01b0319811681146149c457600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a264697066735822122077e25f9c65861d9bf718b537427551bab355394bebd5f95b15c4df6972929f1b64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0xa82ff9afd8f496c3d6ac40e2a0f282e47488cfc9":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c3565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e0565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610335565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead8160008151811061020457610204610405565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b602080825282518282018190526000918401906040840190835b818110156102b85783516001600160a01b0316835260209384019390920191600101610291565b509095945050505050565b6000602082840312156102d557600080fd5b813561013381610226565b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033081610226565b919050565b60006020828403121561034757600080fd5b815167ffffffffffffffff81111561035e57600080fd5b8201601f8101841361036f57600080fd5b805167ffffffffffffffff8111156103895761038961030f565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156103b6576103b661030f565b6040529182526020818401810192908101878411156103d457600080fd5b6020850194505b838510156103fa576103ec85610325565b8152602094850194016103db565b509695505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220638dfc50b48b81ce46f08a524306ba539127d28202ba77d2bd972c2f6f7bb7b864736f6c634300081b0033","storage":{}},"0xb7278a61aa25c888815afc32ad3cc52ff24fe575":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114ac565b60405180910390f35b6100a361009e3660046114e8565b610245565b6040516100879190611653565b6100c36100be3660046116c4565b6106c5565b6040516100879190611713565b6100e36100de3660046117aa565b6107d2565b60405161008791906118ab565b6101036100fe366004611963565b610eea565b60405161008791906119c6565b61012361011e3660046119fe565b6110a8565b604051610087929190611a35565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a56565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a6c565b82828151811061022b5761022b611a56565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a85565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a85565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a85565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a56565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611aa2565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a56565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a56565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a85565b6001600160a01b031681526020018383815181106105b6576105b6611a56565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a56565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b37565b6001600160601b031681525085858151811061068257610682611a56565b6020026020010151828151811061069b5761069b611a56565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a56565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a85565b8282815181106107b2576107b2611a56565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a85565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b60565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611ba7565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c64565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611ba7565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a56565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a56565b905060200201358e88600001518681518110610a9257610a92611a56565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c8d565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a56565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a56565b905060200201358d8d8860ff16818110610c2d57610c2d611a56565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611cb6565b85606001518560ff1681518110610cc057610cc0611a56565b60200260200101518481518110610cd957610cd9611a56565b63ffffffff9092166020928302919091019091015282610cf881611ce9565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a56565b60200260200101518181518110610d8957610d89611a56565b6020026020010151828281518110610da357610da3611a56565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a56565b602002602001018190525050508080610df390611d02565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a85565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d21565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611ba7565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d4b565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611ba7565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a56565b602002602001015187868581518110610ff257610ff2611a56565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c8d565b6001600160c01b031682828151811061108b5761108b611a56565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a56565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d4b565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611ba7565b60008151811061117657611176611a56565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c8d565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a56565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611ce9565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d6a565b909216918061132981611d7d565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b915060208301356001600160401b038111156113f157600080fd5b8301601f8101851361140257600080fd5b803561141561141082611395565b611365565b8082825260208201915060208360051b85010192508783111561143757600080fd5b6020840193505b8284101561146257833561145181611337565b82526020938401939091019061143e565b809450505050509250929050565b600081518084526020840193506020830160005b828110156114a2578151865260209586019590910190600101611484565b5093949350505050565b6020815260006114bf6020830184611470565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114e3816114c6565b919050565b6000806000606084860312156114fd57600080fd5b833561150881611337565b925060208401356001600160401b0381111561152357600080fd5b8401601f8101861361153457600080fd5b80356001600160401b0381111561154d5761154d61134f565b611560601f8201601f1916602001611365565b81815287602083850101111561157557600080fd5b8160208401602083013760006020838301015280945050505061159a604085016114d8565b90509250925092565b600082825180855260208501945060208160051b8301016020850160005b8381101561164757848303601f190188528151805180855260209182019185019060005b8181101561162e57835180516001600160a01b03168452602080820151818601526040918201516001600160601b031691850191909152909301926060909201916001016115e5565b50506020998a01999094509290920191506001016115c1565b50909695505050505050565b6020815260006114bf60208301846115a3565b600082601f83011261167757600080fd5b813561168561141082611395565b8082825260208201915060208360051b8601019250858311156116a757600080fd5b602085015b8381101561109e5780358352602092830192016116ac565b600080604083850312156116d757600080fd5b82356116e281611337565b915060208301356001600160401b038111156116fd57600080fd5b61170985828601611666565b9150509250929050565b602080825282518282018190526000918401906040840190835b818110156117545783516001600160a01b031683526020938401939092019160010161172d565b509095945050505050565b60008083601f84011261177157600080fd5b5081356001600160401b0381111561178857600080fd5b6020830191508360208260051b85010111156117a357600080fd5b9250929050565b600080600080600080608087890312156117c357600080fd5b86356117ce81611337565b955060208701356117de816114c6565b945060408701356001600160401b038111156117f957600080fd5b8701601f8101891361180a57600080fd5b80356001600160401b0381111561182057600080fd5b89602082840101111561183257600080fd5b6020919091019450925060608701356001600160401b0381111561185557600080fd5b61186189828a0161175f565b979a9699509497509295939492505050565b600081518084526020840193506020830160005b828110156114a257815163ffffffff16865260209586019590910190600101611887565b6020815260008251608060208401526118c760a0840182611873565b90506020840151601f198483030160408501526118e48282611873565b9150506040840151601f198483030160608501526119028282611873565b6060860151858203601f190160808701528051808352919350602090810192508084019190600582901b85010160005b828110156106b957601f1986830301845261194e828651611873565b60209586019594909401939150600101611932565b60008060006060848603121561197857600080fd5b833561198381611337565b925060208401356001600160401b0381111561199e57600080fd5b6119aa86828701611666565b92505060408401356119bb816114c6565b809150509250925092565b602080825282518282018190526000918401906040840190835b818110156117545783518352602093840193909201916001016119e0565b600080600060608486031215611a1357600080fd5b8335611a1e81611337565b92506020840135915060408401356119bb816114c6565b828152604060208201526000611a4e60408301846115a3565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7e57600080fd5b5051919050565b600060208284031215611a9757600080fd5b81516114bf81611337565b600060208284031215611ab457600080fd5b81516001600160401b03811115611aca57600080fd5b8201601f81018413611adb57600080fd5b8051611ae961141082611395565b8082825260208201915060208360051b850101925086831115611b0b57600080fd5b6020840193505b82841015611b2d578351825260209384019390910190611b12565b9695505050505050565b600060208284031215611b4957600080fd5b81516001600160601b03811681146114bf57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b8d57600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215611bb957600080fd5b81516001600160401b03811115611bcf57600080fd5b8201601f81018413611be057600080fd5b8051611bee61141082611395565b8082825260208201915060208360051b850101925086831115611c1057600080fd5b6020840193505b82841015611b2d578351611c2a816114c6565b825260209384019390910190611c17565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c84604083018486611c3b565b95945050505050565b600060208284031215611c9f57600080fd5b81516001600160c01b03811681146114bf57600080fd5b600060208284031215611cc857600080fd5b81516114bf816114c6565b634e487b7160e01b600052601160045260246000fd5b600060018201611cfb57611cfb611cd3565b5060010190565b600060ff821660ff8103611d1857611d18611cd3565b60010192915050565b604081526000611d35604083018587611c3b565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a4e6040830184611470565b8181038181111561133157611331611cd3565b600061ffff821661ffff8103611d1857611d18611cd356fea264697066735822122033585ad22b02fc74fbd447d232f18fbc94c4d2d5f8667d94aaa1ee5226d7192a64736f6c634300081b0033","storage":{}},"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea2646970667358221220042ec08fde05948b20d3f0fe8bf03cfe1d6ad33ecfc3fd565cbce702b2daa70b64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000001":"0x000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad788"}},"0xc5a5c42992decbae36851359345fe25997f5c42d":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120001","0x0000000000000000000000000000000000000000000000000000000000000001":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000032":"0x00000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef","0x0000000000000000000000000000000000000000000000000000000000000064":"0x0000000000000000000000000000000000000000000000000de0b6b3a7640000","0x0000000000000000000000000000000000000000000000000000000000000065":"0x00000000000000000000000000000000000000000000003635c9adc5dea00000","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000066":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000097":"0x831f01b2aeb61d5d8c019704e62c25763057a8806c5c790bc8b4c99ee54ac8a7","0x000000000000000000000000000000000000000000000000000000000000009d":"0x000000000000000000000000000000000000000000000000000000000000000a","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000097":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000098":"0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000000000000000000c9":"0xd65ac9700cec4e530497617d02afdf0d5de3ed18466aca1578edcbce0d40ee16","0x00000000000000000000000000000000000000000000000000000000000000cb":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd82","0x3d2729dff03bf559da35a983e55814217363c2a44a7ea59bdf688ab8754ea49d":"0x0000000000000000000000000000000000000000000000000000000000000001","0x6e45a9ad53caf7293849c96e5070a246e20a7cc2986b7660b3fb63e30ab898fc":"0x0000000000000000000000000000000000000000000000000000000000000000","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122082d0bf2d943ad14055e4e88fc955638b565f43d854afdcd3d6cd966fe8c2201a64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000001":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x723077b8a1b173adc35e5f0e7e3662fd1208212cb629f9c128551ea7168da722":"0x0000000000000000000000000000000000000000000000000000000000000001"}},"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266":{"nonce":58,"balance":"0x21e0b9cf7783293c727","code":"0x","storage":{}},"0xf5059a5d33d5853360d16c683c16e67980206f36":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","storage":{"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49","0x3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff":"0x0000000000000000000000000000000000000000000000000000000000000001","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042","0xcfb339bd1c51c488f6134f4ac63d1594afad827b3401c3fc51ed1da74a8ca14e":"0x0000000000000000000000000000000000000000000000000000000000000007"}}},"best_block_number":"0xe","blocks":[{"header":{"parentHash":"0xc3a6dcac3748c6c5456194f4d0559acb3fce93bdb951a1aaf5e92d91230fcb99","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x4bd23210fd56ae957c1c05d3eedaa3d388c2837fb1790dcb09c5b1e92fbe679b","transactionsRoot":"0xb8c4c56d5448315c0ddb7e2b51d4b48a5bc3eebd27008fdbb3aa6094cb22b189","receiptsRoot":"0x6167e3ed94c1e9c67d7d605ed7204acf6a9e2316d773ff8e9acf54a3d3740967","logsBloom":"0x00000000000001000000000040000000400400000000000000800000020000000000000800000000000000000000000000000000000000100800000000000000000080000000008000002400000102000001000400000010000000008000000000000000020000000000008100010820000000080200000000000000000000400100000100000000000000000000000000000000000080000000000000000000000000000000000000200000400400000000000000000000000000000000000000000020480000280000000000041100000000002000000000000000000020000000000000400000080000800000000000000000000000000000100000408000","difficulty":"0x0","number":"0x7","gasLimit":"0x1c9c380","gasUsed":"0x8bd28","timestamp":"0x66fa9fd2","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1ea350d4","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2f","gasLimit":"0xacff5","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000851356ae760d987e095750cceb3bc6014560891c0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd0000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000264dd8283f3000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af8000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000","r":"0xda92a9b9b093161425c968829881c36cb6c630cf88a6d79a1a47a417f23d29cb","s":"0x51f3cfeb9d7ccda4fda5fdc72735b8150ec3b20bc46ebd54c854b8ca65f9c4e3","yParity":"0x0","hash":"0x07fcd103ee0ca154b0df41b41dfec0848907f483d2ccb95fc49b5c956a34a00b"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x3ae86512f47472599bdf17ca766dd68a09554bd2059f48155a92fc414f24ddd2","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xa810593bf34bd03e26a222a548750bcb9784b30f21352bd1a3448f998b505059","transactionsRoot":"0x2d295a1a56790354d3dfc15ffddaa6edfa873b022a1e1baa22b14a5e5edc4edd","receiptsRoot":"0x512e220a8b7b294fa78996ec060c7ee2a7aea1e010adaa6e9d99d6250505f207","logsBloom":"0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800001004000000000000000000000000400000000100000000000000000000000000000000000080004000000000000000002000000000000000000000008400000000000000000000000000000000000000000020400000200000000000040000040000002008000001000000000020000000000000000001000000000000000000000000000000020000000000400000","difficulty":"0x0","number":"0xf","gasLimit":"0x1c9c380","gasUsed":"0x22a1c","timestamp":"0x66f70aa6","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xc1968f9","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x19","gasLimit":"0x2fd5c","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31800000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000","r":"0xce9a83556ed5b8b9b6319c02942d2d3720f02fc38edad3098f7c8a7d20b20d1c","s":"0x4f81258f20f30b95f0f9edcab842a6f3f2873afe18960b9acc11ee602a38a56","yParity":"0x1","hash":"0xb607e1fb885ff8088878a3701005807b6ed2e513a5dc7a46832337ffad520f52"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x6222c4f3c6f9a929c847e82190b35fd771759a630b2bfab5b1902dfec113f3f5","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x495c097d3b0a21beda9e4f50ebfe3a3f982ce575c58f62530bbdaac1b4fa7abe","transactionsRoot":"0xb0bfa03cddf065ea4b4e6097efa8ee1378555633b967e4c02c77b7dd947236a1","receiptsRoot":"0xdf1689855a13359df26948bffe135bb1f9447cbf6d0ce7e883823485544d1d04","logsBloom":"0x00000000000000000000000001000000400000000000000000800000000000000000001000000000000400000000000000000100000000002000000000000000000000000800000000000000000002000001000240000000000000400000000008000000828000000000010100000800000000000000000000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000104000000000000000000000000000000000020000000200000000800040000100000002000000200000001000020020000000000000000000000000000000000000000000000000000000000001000","difficulty":"0x0","number":"0x8","gasLimit":"0x1c9c380","gasUsed":"0x4a398f","timestamp":"0x66fa9fd3","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1af45594","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x30","gasLimit":"0x5cdeca","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x61018060405234801561001157600080fd5b50604051615834380380615834833981016040819052610030916103fb565b6001600160a01b0380851660805280841660a05280831660c052811660e052818484828461005c610327565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100dd919061045a565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610135573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610159919061045a565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d8919061045a565b6001600160a01b03908116610160528516905061022c57604051630b0f5aa160e11b815260206004820152600c60248201526b6176734469726563746f727960a01b60448201526064015b60405180910390fd5b6001600160a01b03831661027857604051630b0f5aa160e11b81526020600482015260126024820152713932bbb0b93239a1b7b7b93234b730ba37b960711b6044820152606401610223565b6001600160a01b0382166102cf57604051630b0f5aa160e11b815260206004820152601360248201527f7265676973747279436f6f7264696e61746f72000000000000000000000000006044820152606401610223565b6001600160a01b03811661031657604051630b0f5aa160e11b815260206004820152600d60248201526c7374616b65526567697374727960981b6044820152606401610223565b61031e610327565b5050505061047e565b600054610100900460ff161561038f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610223565b60005460ff90811610156103e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146103f857600080fd5b50565b6000806000806080858703121561041157600080fd5b845161041c816103e3565b602086015190945061042d816103e3565b604086015190935061043e816103e3565b606086015190925061044f816103e3565b939692955090935050565b60006020828403121561046c57600080fd5b8151610477816103e3565b9392505050565b60805160a05160c05160e051610100516101205161014051610160516152a961058b6000396000818161065401526117dd01526000818161039701526119f00152600081816103cb01528181611bdd0152611dcd0152600081816104320152818161100f015281816114a30152818161164a0152611891015260008181610d4401528181610e9501528181610f2c01528181612b4b01528181612cc40152612d63015260008181610b6b01528181610bfa01528181610c7a015281816121660152818161223201528181612a860152612c1f01526000818161311a015281816131d601526132b90152600081816103fc015281816121ba0152818161228e015261230d01526152a96000f3fe6080604052600436106101fd5760003560e01c806395c6d6041161010d578063d66eaabd116100a0578063f474b5201161006f578063f474b520146106ab578063f9120af6146106d8578063fa534dc0146106f8578063fc299dee14610718578063fce36c7d1461073857600080fd5b8063d66eaabd1461062f578063df5cf72314610642578063e481af9d14610676578063f2fde38b1461068b57600080fd5b8063ab21739a116100dc578063ab21739a1461056b578063b099627e1461058b578063b98d0908146105f5578063c0c53b8b1461060f57600080fd5b806395c6d604146104eb5780639926ee7d1461050b578063a364f4da1461052b578063a98fb3551461054b57600080fd5b80634ae07c37116101905780636d14a9871161015f5780636d14a9871461042057806370a0823114610454578063715018a614610498578063800fb61f146104ad5780638da5cb5b146104cd57600080fd5b80634ae07c37146103575780635df459461461038557806368304835146103b95780636b3aa72e146103ed57600080fd5b80633bc28c8c116101cc5780633bc28c8c146102cc578063416c7e5e146102ec5780634223d5511461030c5780634a5bf6321461031f57600080fd5b806306045a9114610213578063171f1d5b146102485780632e1a7d4d1461027f57806333cfb7b71461029f57600080fd5b3661020e5761020c3334610758565b005b600080fd5b34801561021f57600080fd5b5061023361022e366004614238565b6107ed565b60405190151581526020015b60405180910390f35b34801561025457600080fd5b5061026861026336600461438b565b6108e4565b60408051921515835290151560208301520161023f565b34801561028b57600080fd5b5061020c61029a3660046143dc565b610a6e565b3480156102ab57600080fd5b506102bf6102ba3660046143f5565b610b46565b60405161023f9190614412565b3480156102d857600080fd5b5061020c6102e73660046143f5565b610ff9565b3480156102f857600080fd5b5061020c610307366004614461565b61100d565b61020c61031a3660046143f5565b611144565b34801561032b57600080fd5b5060cb5461033f906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b34801561036357600080fd5b50610377610372366004614759565b61114e565b60405161023f9291906147f4565b34801561039157600080fd5b5061033f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c557600080fd5b5061033f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103f957600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061033f565b34801561042c57600080fd5b5061033f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561046057600080fd5b5061048a61046f3660046143f5565b6001600160a01b0316600090815260ca602052604090205490565b60405190815260200161023f565b3480156104a457600080fd5b5061020c612082565b3480156104b957600080fd5b5061020c6104c83660046143f5565b612096565b3480156104d957600080fd5b506033546001600160a01b031661033f565b3480156104f757600080fd5b50610233610506366004614885565b612136565b34801561051757600080fd5b5061020c6105263660046148d0565b61215b565b34801561053757600080fd5b5061020c6105463660046143f5565b612227565b34801561055757600080fd5b5061020c610566366004614987565b6122ee565b34801561057757600080fd5b5061020c6105863660046149d7565b612342565b34801561059757600080fd5b506105d36105a63660046143dc565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff909416845291151560208401529082015260600161023f565b34801561060157600080fd5b506097546102339060ff1681565b34801561061b57600080fd5b5061020c61062a3660046149fe565b612701565b61020c61063d366004614a49565b6128c6565b34801561064e57600080fd5b5061033f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561068257600080fd5b506102bf612a80565b34801561069757600080fd5b5061020c6106a63660046143f5565b612e2c565b3480156106b757600080fd5b5061048a6106c63660046143f5565b60ca6020526000908152604090205481565b3480156106e457600080fd5b5061020c6106f33660046143f5565b612ea2565b34801561070457600080fd5b50610233610713366004614a9b565b612ecc565b34801561072457600080fd5b5060655461033f906001600160a01b031681565b34801561074457600080fd5b5061020c610753366004614b1b565b612f41565b8060000361078157604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca6020526040812080548392906107a9908490614ba6565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a25050565b6000806001600160a01b038316610805575084610831565b8583604051602001610818929190614bb9565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff1690036108565760009150506108d8565b600081815260c96020526040902054640100000000900460ff1661087e5760009150506108d8565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f19818403018152919052805160208201209091506108d2878983896132f0565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018787600001518860200151886000015160006002811061092c5761092c614bd4565b60200201518951600160200201518a6020015160006002811061095157610951614bd4565b60200201518b6020015160016002811061096d5761096d614bd4565b602090810291909101518c518d8301516040516109ca9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6109ed9190614bea565b9050610a60610a066109ff8884613308565b8690613399565b610a0e61342e565b610a56610a4785610a41604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613308565b610a508c6134ee565b90613399565b886201d4c061357d565b909890975095505050505050565b33600090815260ca6020526040902054811115610abf5733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018390526044820152606401610778565b33600090815260ca602052604081208054839290610ade908490614c0c565b909155505033600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610b42573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd69190614c1f565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c659190614c38565b90506001600160c01b0381161580610cff57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190614c61565b60ff16155b15610d1f5760408051600080825260208201909252905b50949350505050565b6000610d33826001600160c01b0316613797565b90506000805b8251811015610dff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610d8357610d83614bd4565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610deb9190614c1f565b610df59083614ba6565b9150600101610d39565b506000816001600160401b03811115610e1a57610e1a614110565b604051908082528060200260200182016040528015610e43578160200160208202803683370190505b5090506000805b8451811015610fec576000858281518110610e6757610e67614bd4565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015610edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f009190614c1f565b905060005b81811015610fe1576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015610f7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9e9190614c99565b60000151868681518110610fb457610fb4614bd4565b6001600160a01b039092166020928302919091019091015284610fd681614cdc565b955050600101610f05565b505050600101610e4a565b5090979650505050505050565b611001613859565b61100a816138b3565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108f9190614cf5565b6001600160a01b0316336001600160a01b03161461113b5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610778565b61100a8161391c565b61100a8134610758565b604080518082019091526060808252602082015260008260400151516040518060400160405280600181526020016000815250511480156111aa57508260a0015151604051806040016040528060018152602001600081525051145b80156111d157508260c0015151604051806040016040528060018152602001600081525051145b80156111f857508260e0015151604051806040016040528060018152602001600081525051145b6112625760405162461bcd60e51b8152602060048201526041602482015260008051602061525483398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610778565b825151602084015151146112da5760405162461bcd60e51b815260206004820152604460248201819052600080516020615254833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610778565b4363ffffffff168463ffffffff16106113495760405162461bcd60e51b815260206004820152603c602482015260008051602061525483398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610778565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561140a5761140a614110565b604051908082528060200260200182016040528015611433578160200160208202803683370190505b5081526020860151516001600160401b0381111561145357611453614110565b60405190808252806020026020018201604052801561147c578160200160208202803683370190505b508160200181905250600061152860405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115239190614c61565b613963565b905060005b8760200151518110156117b9576115728860200151828151811061155357611553614bd4565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061158857611588614bd4565b602090810291909101015280156116485760208301516115a9600183614c0c565b815181106115b9576115b9614bd4565b602002602001015160001c836020015182815181106115da576115da614bd4565b602002602001015160001c11611648576040805162461bcd60e51b815260206004820152602481019190915260008051602061525483398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610778565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec63518460200151838151811061168d5761168d614bd4565b60200260200101518b8b6000015185815181106116ac576116ac614bd4565b60200260200101516040518463ffffffff1660e01b81526004016116e99392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a9190614c38565b6001600160c01b03168360000151828151811061174957611749614bd4565b6020026020010181815250506117af6109ff611783848660000151858151811061177557611775614bd4565b6020026020010151166139f6565b8a60200151848151811061179957611799614bd4565b6020026020010151613a2190919063ffffffff16565b945060010161152d565b50506117c483613b04565b60975490935060ff166000816117db57600061185d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185d9190614c1f565b905060005b604051806040016040528060018152602001600081525051811015611f535782156119ee578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c42604051806040016040528060018152602001600081525085815181106118e6576118e6614bd4565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561192a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194e9190614c1f565b6119589190614ba6565b116119ee5760405162461bcd60e51b8152602060048201526066602482015260008051602061525483398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610778565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611a4557611a45614bd4565b602001015160f81c60f81b60f81c8c8c60a001518581518110611a6a57611a6a614bd4565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aea9190614d12565b6001600160401b031916611b0d8a60400151838151811061155357611553614bd4565b67ffffffffffffffff191614611ba95760405162461bcd60e51b8152602060048201526061602482015260008051602061525483398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610778565b611bd989604001518281518110611bc257611bc2614bd4565b60200260200101518761339990919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611c3257611c32614bd4565b602001015160f81c60f81b60f81c8c8c60c001518581518110611c5757611c57614bd4565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd79190614d3d565b85602001518281518110611ced57611ced614bd4565b6001600160601b03909216602092830291909101820152850151805182908110611d1957611d19614bd4565b602002602001015185600001518281518110611d3757611d37614bd4565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611f4957611dc686600001518281518110611d8157611d81614bd4565b602002602001015160405180604001604052806001815260200160008152508581518110611db157611db1614bd4565b016020015160f81c60ff161c60019081161490565b15611f41577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611e2257611e22614bd4565b602001015160f81c60f81b60f81c8e89602001518581518110611e4757611e47614bd4565b60200260200101518f60e001518881518110611e6557611e65614bd4565b60200260200101518781518110611e7e57611e7e614bd4565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f069190614d3d565b8751805185908110611f1a57611f1a614bd4565b60200260200101818151611f2e9190614d5a565b6001600160601b03169052506001909101905b600101611d5b565b5050600101611862565b505050600080611f6d8a868a606001518b608001516108e4565b9150915081611fde5760405162461bcd60e51b8152602060048201526043602482015260008051602061525483398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610778565b8061203f5760405162461bcd60e51b8152602060048201526039602482015260008051602061525483398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610778565b5050600087826020015160405160200161205a929190614d79565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b61208a613859565b6120946000613b9f565b565b600054600290610100900460ff161580156120b8575060005460ff8083169116105b6120d45760405162461bcd60e51b815260040161077890614dc1565b6000805461ffff191660ff8316176101001790556120f182612ea2565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000818484604051612149929190614e0f565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146121a35760405162461bcd60e51b815260040161077890614e1f565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906121f19085908590600401614edd565b600060405180830381600087803b15801561220b57600080fd5b505af115801561221f573d6000803e3d6000fd5b505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461226f5760405162461bcd60e51b815260040161077890614e1f565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b5050505050565b6122f6613859565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb355906122b9908490600401614f28565b60cb546001600160a01b031633146123825760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610778565b60005a90506000848460405160200161239c929190614bb9565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff90911690036123f1576040516311cb69a760e11b815260048101839052602401610778565b8054640100000000900460ff161561241f57604051634e78d7f960e11b815260048101839052602401610778565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca602052604090205410156124a25760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610778565b80546000906124b990849063ffffffff168761114e565b509050604360ff1681602001516000815181106124d8576124d8614bd4565b60200260200101516124ea9190614f3b565b6001600160601b03166064826000015160008151811061250c5761250c614bd4565b60200260200101516001600160601b03166125279190614f64565b10156125ba576064816000015160008151811061254657612546614bd4565b60200260200101516001600160601b03166125619190614f64565b604360ff16826020015160008151811061257d5761257d614bd4565b602002602001015161258f9190614f3b565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610778565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a6126069087614c0c565b6126139062011170614ba6565b61261d9190614f64565b9050826001015481111561265457600183015460405163437e283f60e11b8152600481019190915260248101829052604401610778565b6001600160a01b038716600090815260ca60205260408120805483929061267c908490614c0c565b90915550506001600160a01b038716600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156126f6573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff16158080156127215750600054600160ff909116105b8061273b5750303b15801561273b575060005460ff166001145b6127575760405162461bcd60e51b815260040161077890614dc1565b6000805460ff19166001179055801561277a576000805461ff0019166101001790555b6001600160a01b0384166127c057604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610778565b6001600160a01b03831661280a57604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610778565b6001600160a01b03821661285557604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610778565b61285f8484613bf1565b60cb80546001600160a01b0319166001600160a01b03841617905580156128c0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600084336040516020016128db929190614bb9565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff161561292a57604051630c40bc4360e21b815260048101829052602401610778565b34156129875733600090815260ca60205260408120805434929061294f908490614ba6565b909155505033600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a25b33600090815260ca60205260409020548211156129d85733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610778565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612a70913391908a908a908a90614f7b565b60405180910390a2505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b069190614c61565b60ff16905080600003612b2757505060408051600081526020810190915290565b6000805b82811015612bd257604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbe9190614c1f565b612bc89083614ba6565b9150600101612b2b565b506000816001600160401b03811115612bed57612bed614110565b604051908082528060200260200182016040528015612c16578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f9190614c61565b60ff16811015612e2257604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d379190614c1f565b905060005b81811015612e18576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd59190614c99565b60000151858581518110612deb57612deb614bd4565b6001600160a01b039092166020928302919091019091015283612e0d81614cdc565b945050600101612d3c565b5050600101612c1d565b5090949350505050565b612e34613859565b6001600160a01b038116612e995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610778565b61100a81613b9f565b612eaa613859565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190612f00908b908b908b908b908b908b908b908b90600401614fd2565b602060405180830381865afa158015612f1d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d89190615034565b6065546001600160a01b03163314612fd65760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610778565b60005b818110156132a157828282818110612ff357612ff3614bd4565b90506020028101906130059190615051565b6130169060408101906020016143f5565b6001600160a01b03166323b872dd333086868681811061303857613038614bd4565b905060200281019061304a9190615051565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156130a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c59190615034565b5060008383838181106130da576130da614bd4565b90506020028101906130ec9190615051565b6130fd9060408101906020016143f5565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561316b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318f9190614c1f565b90508383838181106131a3576131a3614bd4565b90506020028101906131b59190615051565b6131c69060408101906020016143f5565b6001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000008387878781811061320857613208614bd4565b905060200281019061321a9190615051565b604001356132289190614ba6565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132979190615034565b5050600101612fd9565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906121f190859085906004016150d8565b6000836132fe868585613c6e565b1495945050505050565b604080518082019091526000808252602082015261332461401e565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061335357fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610778565b505092915050565b60408051808201909152600080825260208201526133b561403c565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806133f057fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610778565b61343661405a565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201909152600080825260208201526000808061351e60008051602061521483398151915286614bea565b90505b61352a81613d6b565b90935091506000805160206152148339815191528283098303613563576040805180820190915290815260208101919091529392505050565b600080516020615214833981519152600182089050613521565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906135af61407f565b60005b600281101561376a5760006135c8826006614f64565b90508482600281106135dc576135dc614bd4565b602002015151836135ee836000614ba6565b600c81106135fe576135fe614bd4565b602002015284826002811061361557613615614bd4565b6020020151602001518382600161362c9190614ba6565b600c811061363c5761363c614bd4565b602002015283826002811061365357613653614bd4565b6020020151515183613666836002614ba6565b600c811061367657613676614bd4565b602002015283826002811061368d5761368d614bd4565b60200201515160016020020151836136a6836003614ba6565b600c81106136b6576136b6614bd4565b60200201528382600281106136cd576136cd614bd4565b6020020151602001516000600281106136e8576136e8614bd4565b6020020151836136f9836004614ba6565b600c811061370957613709614bd4565b602002015283826002811061372057613720614bd4565b60200201516020015160016002811061373b5761373b614bd4565b60200201518361374c836005614ba6565b600c811061375c5761375c614bd4565b6020020152506001016135b2565b5061377361409e565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b60606000806137a5846139f6565b61ffff166001600160401b038111156137c0576137c0614110565b6040519080825280601f01601f1916602001820160405280156137ea576020820181803683370190505b5090506000805b825182108015613802575061010081105b15612e22576001811b935085841615613849578060f81b83838151811061382b5761382b614bd4565b60200101906001600160f81b031916908160001a9053508160010191505b61385281614cdc565b90506137f1565b6033546001600160a01b031633146120945760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610778565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061396f84613ded565b9050808360ff166001901b116139ed5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610778565b90505b92915050565b6000805b82156139f057613a0b600184614c0c565b9092169180613a19816151f2565b9150506139fa565b60408051808201909152600080825260208201526102008261ffff1610613a7d5760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610778565b8161ffff16600103613a905750816139f0565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613af957600161ffff871660ff83161c81169003613adc57613ad98484613399565b93505b613ae68384613399565b92506201fffe600192831b169101613aac565b509195945050505050565b60408051808201909152600080825260208201528151158015613b2957506020820151155b15613b47575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206152148339815191528460200151613b7a9190614bea565b613b9290600080516020615214833981519152614c0c565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613c5c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610778565b613c6582613b9f565b610b42816138b3565b600060208451613c7e9190614bea565b15613d055760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610778565b8260205b85518111610d1657613d1c600285614bea565b600003613d4057816000528086015160205260406000209150600284049350613d59565b8086015160005281602052604060002091506002840493505b613d64602082614ba6565b9050613d09565b60008080600080516020615214833981519152600360008051602061521483398151915286600080516020615214833981519152888909090890506000613de1827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615214833981519152613f75565b91959194509092505050565b600061010082511115613e765760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610778565b8151600003613e8757506000919050565b60008083600081518110613e9d57613e9d614bd4565b0160200151600160f89190911c81901b92505b8451811015613f6c57848181518110613ecb57613ecb614bd4565b0160200151600160f89190911c1b9150828211613f605760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610778565b91811791600101613eb0565b50909392505050565b600080613f8061409e565b613f886140bc565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fc557fe5b50826140135760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610778565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061406d6140da565b815260200161407a6140da565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613b9a57600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561414857614148614110565b60405290565b60405161010081016001600160401b038111828210171561414857614148614110565b604051601f8201601f191681016001600160401b038111828210171561419957614199614110565b604052919050565b6000806001600160401b038411156141bb576141bb614110565b50601f8301601f19166020016141d081614171565b9150508281528383830111156141e557600080fd5b828260208301376000602084830101529392505050565b600082601f83011261420d57600080fd5b61421c838335602085016141a1565b9392505050565b6001600160a01b038116811461100a57600080fd5b600080600080600080600080610100898b03121561425557600080fd5b88359750602089013596506040890135955061427360608a016140f8565b94506080890135935060a08901356001600160401b0381111561429557600080fd5b6142a18b828c016141fc565b93505060c0890135915060e08901356142b981614223565b809150509295985092959890939650565b6000604082840312156142dc57600080fd5b6142e4614126565b823581526020928301359281019290925250919050565b600082601f83011261430c57600080fd5b614314614126565b80604084018581111561432657600080fd5b845b81811015614340578035845260209384019301614328565b509095945050505050565b60006080828403121561435d57600080fd5b614365614126565b905061437183836142fb565b815261438083604084016142fb565b602082015292915050565b60008060008061012085870312156143a257600080fd5b843593506143b386602087016142ca565b92506143c2866060870161434b565b91506143d18660e087016142ca565b905092959194509250565b6000602082840312156143ee57600080fd5b5035919050565b60006020828403121561440757600080fd5b81356139ed81614223565b602080825282518282018190526000918401906040840190835b818110156143405783516001600160a01b031683526020938401939092019160010161442c565b801515811461100a57600080fd5b60006020828403121561447357600080fd5b81356139ed81614453565b803563ffffffff81168114613b9a57600080fd5b60006001600160401b038211156144ab576144ab614110565b5060051b60200190565b600082601f8301126144c657600080fd5b81356144d96144d482614492565b614171565b8082825260208201915060208360051b8601019250858311156144fb57600080fd5b602085015b8381101561451f576145118161447e565b835260209283019201614500565b5095945050505050565b600082601f83011261453a57600080fd5b81356145486144d482614492565b8082825260208201915060208360061b86010192508583111561456a57600080fd5b602085015b8381101561451f5761458187826142ca565b835260209092019160400161456f565b600082601f8301126145a257600080fd5b81356145b06144d482614492565b8082825260208201915060208360051b8601019250858311156145d257600080fd5b602085015b8381101561451f5780356001600160401b038111156145f557600080fd5b614604886020838a01016144b5565b845250602092830192016145d7565b6000610180828403121561462657600080fd5b61462e61414e565b905081356001600160401b0381111561464657600080fd5b614652848285016144b5565b82525060208201356001600160401b0381111561466e57600080fd5b61467a84828501614529565b60208301525060408201356001600160401b0381111561469957600080fd5b6146a584828501614529565b6040830152506146b8836060840161434b565b60608201526146ca8360e084016142ca565b60808201526101208201356001600160401b038111156146e957600080fd5b6146f5848285016144b5565b60a0830152506101408201356001600160401b0381111561471557600080fd5b614721848285016144b5565b60c0830152506101608201356001600160401b0381111561474157600080fd5b61474d84828501614591565b60e08301525092915050565b60008060006060848603121561476e57600080fd5b8335925061477e6020850161447e565b915060408401356001600160401b0381111561479957600080fd5b6147a586828701614613565b9150509250925092565b600081518084526020840193506020830160005b828110156147ea5781516001600160601b03168652602095860195909101906001016147c3565b5093949350505050565b604081526000835160408084015261480f60808401826147af565b90506020850151603f1984830301606085015261482c82826147af565b925050508260208301529392505050565b60008083601f84011261484f57600080fd5b5081356001600160401b0381111561486657600080fd5b60208301915083602082850101111561487e57600080fd5b9250929050565b60008060006040848603121561489a57600080fd5b83356001600160401b038111156148b057600080fd5b6148bc8682870161483d565b909790965060209590950135949350505050565b600080604083850312156148e357600080fd5b82356148ee81614223565b915060208301356001600160401b0381111561490957600080fd5b83016060818603121561491b57600080fd5b604051606081016001600160401b038111828210171561493d5761493d614110565b60405281356001600160401b0381111561495657600080fd5b614962878285016141fc565b8252506020828101359082015260409182013591810191909152919491935090915050565b60006020828403121561499957600080fd5b81356001600160401b038111156149af57600080fd5b8201601f810184136149c057600080fd5b6149cf848235602084016141a1565b949350505050565b6000806000606084860312156149ec57600080fd5b83359250602084013561477e81614223565b600080600060608486031215614a1357600080fd5b8335614a1e81614223565b92506020840135614a2e81614223565b91506040840135614a3e81614223565b809150509250925092565b60008060008060608587031215614a5f57600080fd5b8435935060208501356001600160401b03811115614a7c57600080fd5b614a888782880161483d565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614ab657600080fd5b873596506020880135955060408801359450614ad4606089016140f8565b93506080880135925060a08801356001600160401b03811115614af657600080fd5b614b028a828b016141fc565b979a969950949793969295929450505060c09091013590565b60008060208385031215614b2e57600080fd5b82356001600160401b03811115614b4457600080fd5b8301601f81018513614b5557600080fd5b80356001600160401b03811115614b6b57600080fd5b8560208260051b8401011115614b8057600080fd5b6020919091019590945092505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156139f0576139f0614b90565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614c0757634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156139f0576139f0614b90565b600060208284031215614c3157600080fd5b5051919050565b600060208284031215614c4a57600080fd5b81516001600160c01b03811681146139ed57600080fd5b600060208284031215614c7357600080fd5b815160ff811681146139ed57600080fd5b6001600160601b038116811461100a57600080fd5b60006040828403128015614cac57600080fd5b50614cb5614126565b8251614cc081614223565b81526020830151614cd081614c84565b60208201529392505050565b600060018201614cee57614cee614b90565b5060010190565b600060208284031215614d0757600080fd5b81516139ed81614223565b600060208284031215614d2457600080fd5b815167ffffffffffffffff19811681146139ed57600080fd5b600060208284031215614d4f57600080fd5b81516139ed81614c84565b6001600160601b0382811682821603908111156139f0576139f0614b90565b63ffffffff60e01b8360e01b16815260006004820183516020850160005b82811015614db5578151845260209384019390910190600101614d97565b50919695505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015614ebd57602081850181015186830182015201614ea1565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b0383168152604060208201526000825160606040840152614f0760a0840182614e97565b90506020840151606084015260408401516080840152809150509392505050565b60208152600061421c6020830184614e97565b6001600160601b038181168382160290811690818114614f5d57614f5d614b90565b5092915050565b80820281158282048414176139f0576139f0614b90565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b8881528760208201528660408201526001600160601b03198616606082015284608082015261010060a0820152600061500f610100830186614e97565b60c0830194909452506001600160a01b039190911660e0909101529695505050505050565b60006020828403121561504657600080fd5b81516139ed81614453565b60008235609e1983360301811261506757600080fd5b9190910192915050565b8035613b9a81614223565b81835260208301925060008160005b848110156147ea57813561509e81614223565b6001600160a01b0316865260208201356150b781614c84565b6001600160601b03166020870152604095860195919091019060010161508b565b6020808252810182905260006040600584901b830181019083018583609e1936839003015b878210156151e557868503603f19018452823581811261511c57600080fd5b8901803536829003601e1901811261513357600080fd5b81016020810190356001600160401b0381111561514f57600080fd5b8060061b360382131561516157600080fd5b60a0885261517360a08901828461507c565b91505061518260208301615071565b6001600160a01b03166020880152604082810135908801526151a66060830161447e565b63ffffffff1660608801526151bd6080830161447e565b63ffffffff8116608089015291509550506020938401939290920191600191909101906150fd565b5092979650505050505050565b600061ffff821661ffff810361520a5761520a614b90565b6001019291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a2646970667358221220f0c59c77b7d074bcdb7b19f8c2809464f2595d1d7275a6efdc21b02475ba3c0064736f6c634300081b00330000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","r":"0xcb9e15d0c544ffd229da0b0b082c961945b6001b6660fde0beb764bb40a47ae","s":"0x6df9bcfe9fc69cf4a1668fb4270c7ec4247c2d6b131e7fedebfdf691123164e","yParity":"0x1","hash":"0x0e9e27aaf89c8c4cbdb453832e3d5e2d086b6f5b18a1bb38c5a9833c9d9d1b58"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x31","gasLimit":"0x30e16","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000064c0c53b8b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a6500000000000000000000000000000000000000000000000000000000","r":"0xc252b5eeee5c630aaee89c8ae79883d730ab4638d5de960d683e01af61a77de4","s":"0x45f98fbcdca3266d83208bbfbf4395f245e0703dd932d623e52c1370726f6cad","yParity":"0x1","hash":"0x531bb7d2f09e987f09c4d13963a4d4dba280416d1bf45f78aa8cf8afe82c8eb2"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x32","gasLimit":"0xfcef","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","value":"0x0","accessList":[],"input":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","r":"0x3292459ebdc545cdb287bfc384a3c733a762ce23cdf7c7a4bff41a7e85fceaed","s":"0x35617c916e47b8250e75b0038048538e0d5e43d9d0ff5e3cd8fedec3c6e8ba12","yParity":"0x0","hash":"0x52db988f0d1c79dfc7e0660fec8ac4ac3353df68179b3ed54f9b7b06eb1e58d1"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x66cd6853c2f24a1454eb35215440b590c04f7c7a55d30f4d82a42d0fecf5a635","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x9fe260de724164d56de769388974dae5d12911e7021e7be8f909165c28a33431","transactionsRoot":"0xdee38fb81b19158634bcbb330f613c5116af9e91638d07fe818fb6fab2dffe89","receiptsRoot":"0xef8e14512ad410e498c8eaa44e35ee7085169dde44ca53cbd182d980a3445f50","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000008000000000","difficulty":"0x0","number":"0x1","gasLimit":"0x1c9c380","gasUsed":"0x6c389","timestamp":"0x66fa9fcc","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x21","gasLimit":"0x8ca6a","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052348015600f57600080fd5b50601733601b565b606b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61069a8061007a6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212208c9b9e088f3575078e1e546bdacf514367bf3b048de9f62c408ca085a2a59c4b64736f6c634300081b0033","r":"0x8ec7ee93185f08739ad07dda7bef190074a77a61d429f5afe490cb45a76ca423","s":"0x73604592ad0ae6c7ca56425c35b42a3f98a59ba67e0251fdf5860f75bc05ce3e","yParity":"0x0","hash":"0xa6fb03d492d9055f8f211cb2cbed42c9369335b5926dbd284c310bd086df409e"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x76fa2a4c141ce999c8fca25f6cdd9760ea421baefe3e3b64a8bfd31c0e350abc","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x797b81974e6a805be4b5b2890f652662f60be80dd13a8065b104ab561d3a9ff7","transactionsRoot":"0xfab954a1ab4c7104de5f6c6da80ac987021f5090a32b82ed1ce8dfa01fad0410","receiptsRoot":"0xd1c8b65b3434b821c01373d6f8bfbfbe1ccac2db2c2f4524d828b811263c0f75","logsBloom":"0x00000000000000000000000040000000400004000000000000000000000000000400000000000000000400000000000000400000000100100004000000000000000000000000000000000400000002000000000000000000000000000000440000000000000000000000000004800000000004800000000000000000000000000000000300000002000040000000000400000000000080000000000000800000000000000000000000000000000400000000000000000000000000000000000000040020480000000000000000040000000000000408000000000000000000000000000000000000000000000000000000000000000000000000000000400000","difficulty":"0x0","number":"0x12","gasLimit":"0x1c9c380","gasUsed":"0xae942","timestamp":"0x66f70aa9","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x844a0c5","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1c","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xf0fda4d0f88191c03c2ba23a16c13dcdb2509d5a9fe0f48394ecde5352150070","s":"0x1098314b46b48bdc9bb8e6f56ea0403f0eff591ac83b32233588a0ac6dc5a469","yParity":"0x0","hash":"0x5c2ef0a0614d6d04bf3c8181b9130589f20547110fabe10c738ae977ce457f93"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1d","gasLimit":"0x2fecd","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000","r":"0x838b414b6b74a807b6cec49bee76d144ba82d7c1b949f38a2537b2056dd59d25","s":"0x3f63e62b6ba74edca9c1ee1e784bcec6774b75b86076874419d1a282e7f880fc","yParity":"0x1","hash":"0xcb39bb5111342c9b6c2f3bc3007f67a86aa7cbd10b6ab9031dd81ff5a35d1026"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x5dae897ded4889dc65ca7023d8497e57d010b51b7abde53c24f26b3485eacd81","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x4adebc0172fdaea5d2ac026122aa0d272ab18d8fd696aebed6167f4f60c41890","transactionsRoot":"0x4ee3dfee691c56dfe481dc32b8ec71e25be2e327085f960ccea6ad086bab3242","receiptsRoot":"0x5841fc0c5f6649de1300501456004f4d035d53082e28f9f54bdf60e958f9efcd","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000002000000000000000000000000000000000000000000000000000000100000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000001000000000100000000000000","difficulty":"0x0","number":"0x13","gasLimit":"0x1c9c380","gasUsed":"0xed72","timestamp":"0x66f70aaa","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x748a993","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1e","gasLimit":"0x15b43","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","value":"0x0","accessList":[],"input":"0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000","r":"0x9e698007ebebcf4e729e2d57e2bb133d51dc3a79a3d33e52492a454f7d70fc6f","s":"0x55a4c74b4896d8c63d04ee7d13d043025dc495eadd77f811ca2c4696dcd7f248","yParity":"0x0","hash":"0xe6912062264ab60c930b10c03ab097ecc60709d30f3cce8135383cce209f8e71"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x78ae1dc60d5a6304aa339e8aaf1ce85caa9087f90e81ead058aca2a258c890bd","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x416f2b74e0bb18b197717f381a20c273f9d45b8065d1ded6e34cd406fe5b2ad3","transactionsRoot":"0x89461de33ef270ec88c2e0f90b21bf4b0b85299a876fa321c26bc49f56db955f","receiptsRoot":"0xed88345f4b092cb3e0f2915d4af9618426de277e523d6a4136e9b623753c7c8c","logsBloom":"0x00000000000000000000000040000000400000000000000000c00000000000010000000000000000000000000000080000000000000000100000400000000005000000400080000000000400000002000001000250000010010000000000000000000000020000000000000100800808000004000000000000040000000000400000000108000000000000000000000000000800000080000000000000000000000000000000040000000002000400000000000000000008000000000000000000102020400000200000000000040000000000002228000000000001000020000000000000000000000000000000000000000001080000000100002000400000","difficulty":"0x0","number":"0xc","gasLimit":"0x1c9c380","gasUsed":"0x7d85c","timestamp":"0x66f70aa3","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x11ec470d","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x13","gasLimit":"0x3809f","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000010422bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x7453d76833b76652cd6cebc3572864c150a481bb9dc43a606b7e1dcf37118a0a","s":"0x370dcd15c27597d1ef337738c145c04712badb9f3ea0656a20036fd1860a71d","yParity":"0x1","hash":"0xd89622c01e915286913ae41dde34ea10422f2db5e37d325b526b69190e2d349a"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x14","gasLimit":"0x378d0","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd8200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x630a4929acbb47dddc49e0fa0158a45461f73eadcdf0424a290a9ba7c191c1f7","s":"0x61426e423e3667c940feaab545023461bb71e955ef6f988abdc9af2ddf39b04c","yParity":"0x0","hash":"0x6915eb414cbf032995fc0585e67953f7007bd585042661bfff519ed442f40c91"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x15","gasLimit":"0xe6ca","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x95baaaef0bd1fbeb909001f179587ef094ef2423f8b8c6cf093c8ef03b4f2eeb","s":"0x68ef2d33ed58427025667dca05b18437f2f4689f44d2b56d19a8c4cefa75c635","yParity":"0x1","hash":"0x245ce1c4eeb5ceb2ec58663b3425259120d529d7ec97ac88dda2e4d833f539df"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x16","gasLimit":"0x2f5cf","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0xf5efefffce22d0a6334d561618af5a968e3c4da442c9fda875dac6a37d939717","s":"0x17076e1acb4cc153656f1f50f38c034ea8d768e3ffbd1824414e6ac60584001d","yParity":"0x0","hash":"0x7224f9f8c9558feec8910b776ac56c70c752a1d2412ffb4c9d360f721249b1d5"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x1d298f2cf25bd7ff12a2ef732e2721e2debe441bcecb3bce2c0529a16179ce07","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x62fe4646ab5dfb1cf427af16026f0be0ce215e421ab4922650465396bc729b1c","transactionsRoot":"0xc6f32734df932e02104c93fa8e97b4e7a0bb7582c7c8bddfeb3f30f1a5a2ed80","receiptsRoot":"0xc67e46411002b8101673933f8527c20d1d01b7644d56b4eefbe0ecea91e44584","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000100000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xc","gasLimit":"0x1c9c380","gasUsed":"0x23f6a2","timestamp":"0x66fa9fd7","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x10db1045","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x37","gasLimit":"0x2ebcea","maxFeePerGas":"0x266bd50b","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6101806040523060805234801561001557600080fd5b506040805180820182526007815266105b1a59db995960ca1b602080830191909152825180840190935260018352603160f81b90830152906100598261011661010e565b610140526100698161011761010e565b61016052815160208084019190912061010052815190820120610120524660c0526100f86101005161012051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60a05250503060e052610109610141565b61040f565b600060208351101561012a5761012383610202565b905061013b565b8161013584826102df565b5060ff90505b92915050565b600054610100900460ff16156101ae5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084015b60405180910390fd5b60005460ff9081161015610200576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b600080829050601f8151111561022d578260405163305a27a960e01b81526004016101a5919061039d565b8051610238826103eb565b179392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061026a57607f821691505b60208210810361028a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156102da57806000526020600020601f840160051c810160208510156102b75750805b601f840160051c820191505b818110156102d757600081556001016102c3565b50505b505050565b81516001600160401b038111156102f8576102f8610240565b61030c816103068454610256565b84610290565b6020601f82116001811461034057600083156103285750848201515b600019600385901b1c1916600184901b1784556102d7565b600084815260208120601f198516915b828110156103705787850151825560209485019460019092019101610350565b508482101561038e5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b602081526000825180602084015260005b818110156103cb57602081860181015160408684010152016103ae565b506000604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561028a5760001960209190910360031b1b16919050565b60805160a05160c05160e051610100516101205161014051610160516128f861049060003960006113800152600061134d01526000611dc801526000611da001526000611cfb01526000611d2501526000611d4f0152600081816106a2015281816106e201528181610793015281816107d3015261090a01526128f86000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d15780638da5cb5b1161008a578063c891091311610064578063c8910913146104af578063df5ffbc614610506578063f2fde38b14610526578063f83d08ba1461054657600080fd5b80638da5cb5b1461045c578063953ef8071461047a578063a69df4b51461049a57600080fd5b8063715018a6146103be57806373e289d0146103d357806379225985146103e95780637cb3805a146103ff5780638456cb591461041f57806384b0196e1461043457600080fd5b80634f1ef286116101235780634f1ef286146102fb57806352be56291461030e57806352d1902d1461032e57806358b96e27146103435780635c975abb1461037b57806363acc14d1461039e57600080fd5b806317d89c4e146101e95780632df4e21e146102355780632e1a7d4d1461026b5780633659cfe61461028d5780633f4ba83a146102ad5780634d5431ea146102c257600080fd5b366101e45733600090815260fd60205260408120805434929061018e908490612179565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770906101da9034815260200190565b60405180910390a2005b600080fd5b3480156101f557600080fd5b506102226102043660046121a1565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561024157600080fd5b506102226102503660046121a1565b6001600160a01b0316600090815260fd602052604090205490565b34801561027757600080fd5b5061028b6102863660046121be565b61055b565b005b34801561029957600080fd5b5061028b6102a83660046121a1565b610698565b3480156102b957600080fd5b5061028b610777565b3480156102ce57600080fd5b506102226102dd3660046121a1565b6001600160a01b0316600090815260fd602052604090206001015490565b61028b6103093660046121ed565b610789565b34801561031a57600080fd5b5061028b6103293660046121be565b610859565b34801561033a57600080fd5b506102226108fd565b34801561034f57600080fd5b5060fc54610363906001600160a01b031681565b6040516001600160a01b03909116815260200161022c565b34801561038757600080fd5b5060655460ff16604051901515815260200161022c565b3480156103aa57600080fd5b5061028b6103b93660046122b9565b6109b0565b3480156103ca57600080fd5b5061028b610bb1565b3480156103df57600080fd5b50610222610e1081565b3480156103f557600080fd5b5061022260fe5481565b34801561040b57600080fd5b5061028b61041a3660046121be565b610bc3565b34801561042b57600080fd5b5061028b610bd0565b34801561044057600080fd5b50610449610be0565b60405161022c979695949392919061235a565b34801561046857600080fd5b506033546001600160a01b0316610363565b34801561048657600080fd5b5060fb54610363906001600160a01b031681565b3480156104a657600080fd5b5061028b610c26565b3480156104bb57600080fd5b506104eb6104ca3660046121a1565b60fd6020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161022c565b34801561051257600080fd5b5061028b610521366004612437565b610cbd565b34801561053257600080fd5b5061028b6105413660046121a1565b610f0b565b34801561055257600080fd5b5061028b610f81565b610563610ff7565b33600090815260fd6020526040902080548211156105a65780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105ba5750428160010154115b156105e7576001810154604051635f6e272d60e11b8152600481019190915242602482015260440161059d565b818160000160008282546105fb9190612533565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f1935050505015801561065e573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106e05760405162461bcd60e51b815260040161059d90612546565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661072960008051602061287c833981519152546001600160a01b031690565b6001600160a01b03161461074f5760405162461bcd60e51b815260040161059d90612592565b6107588161103d565b6040805160008082526020820190925261077491839190611045565b50565b61077f6111b5565b61078761120f565b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107d15760405162461bcd60e51b815260040161059d90612546565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661081a60008051602061287c833981519152546001600160a01b031690565b6001600160a01b0316146108405760405162461bcd60e51b815260040161059d90612592565b6108498261103d565b61085582826001611045565b5050565b600054600290610100900460ff1615801561087b575060005460ff8083169116105b6108975760405162461bcd60e51b815260040161059d906125de565b6000805461ffff191660ff8316176101001790556108b36111b5565b60fe8290556000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461099d5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161059d565b5060008051602061287c83398151915290565b600054610100900460ff16158080156109d05750600054600160ff909116105b806109ea5750303b1580156109ea575060005460ff166001145b610a065760405162461bcd60e51b815260040161059d906125de565b6000805460ff191660011790558015610a29576000805461ff0019166101001790555b6001600160a01b038516610a7857604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b604482015260640161059d565b6001600160a01b038416610acf57604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e6572000000000000604482015260640161059d565b6001600160a01b038316610b1657604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b604482015260640161059d565b610b1e611261565b610b26611290565b610b2f846112b7565b60fb80546001600160a01b038088166001600160a01b03199283161790925560fc80549286169290911691909117905560fe8290558015610baa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610bb96111b5565b61078760006112b7565b610bcb6111b5565b60fe55565b610bd86111b5565b610787611309565b600060608060008060006060610bf4611346565b610bfc611379565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b610c2e610ff7565b33600090815260fd60205260408120549003610c5f5760405163b38340cf60e01b815233600482015260240161059d565b610c6b610e1042612179565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed84391610cb391815260200190565b60405180910390a2565b60fc546001600160a01b03163314610cea576040516302a5785160e31b815233600482015260240161059d565b610cf2610ff7565b85846000829003610d165760405163e5180e0360e01b815260040160405180910390fd5b80600003610d3757604051630c9d0b0160e21b815260040160405180910390fd5b80821015610d625760405163320f0a1b60e01b8152600481018390526024810182905260440161059d565b610d6d600183612533565b821615610d9057604051636b1651e160e01b81526004810183905260240161059d565b83600003610db1576040516351d432c560e11b815260040160405180910390fd5b84610dbc828661262c565b11610dee5784610dcc828661262c565b604051637899ec7160e01b81526004810192909252602482015260440161059d565b610dfc89898e8a8a896113a7565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663d66eaabd868e8e8e886040518663ffffffff1660e01b8152600401610e449493929190612643565b6000604051808303818588803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b50505050508b7f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375885604051610ea891815260200190565b60405180910390a260fc546001600160a01b03166108fc86610eca848861262c565b610ed49190612533565b6040518115909202916000818181858888f19350505050158015610efc573d6000803e3d6000fd5b50505050505050505050505050565b610f136111b5565b6001600160a01b038116610f785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161059d565b610774816112b7565b610f89610ff7565b33600090815260fd60205260408120549003610fba5760405163366095e160e11b815233600482015260240161059d565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156107875760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161059d565b6107746111b5565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561107d5761107883611737565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156110d7575060408051601f3d908101601f191682019092526110d491810190612683565b60015b61113a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161059d565b60008051602061287c83398151915281146111a95760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161059d565b506110788383836117d3565b6033546001600160a01b031633146107875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059d565b6112176117fe565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff166112885760405162461bcd60e51b815260040161059d9061269c565b610787611847565b600054610100900460ff166107875760405162461bcd60e51b815260040161059d9061269c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611311610ff7565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112443390565b60606113747f0000000000000000000000000000000000000000000000000000000000000000610116611877565b905090565b60606113747f0000000000000000000000000000000000000000000000000000000000000000610117611877565b60006113b46002876126e7565b905060008167ffffffffffffffff8111156113d1576113d16121d7565b6040519080825280602002602001820160405280156113fa578160200160208202803683370190505b50905060005b828163ffffffff16101561152557888861141b836002612709565b63ffffffff168181106114305761143061272f565b9050602002013589898360026114469190612709565b611451906001612745565b63ffffffff168181106114665761146661272f565b90506020020135604051602001611487929190918252602082015260400190565b60405160208183030381529060405280519060200120828263ffffffff16815181106114b5576114b561272f565b60200260200101818152505061151389898363ffffffff168181106114dc576114dc61272f565b9050602002013587878463ffffffff168181106114fb576114fb61272f565b905060200281019061150d9190612761565b86611924565b8061151d81612781565b915050611400565b63ffffffff81168511156115605761154e89898363ffffffff168181106114dc576114dc61272f565b8061155881612781565b915050611525565b61156b6002846126e7565b92505b821561165e575060005b828163ffffffff16101561164c5781611592826002612709565b63ffffffff16815181106115a8576115a861272f565b6020026020010151828260026115be9190612709565b6115c9906001612745565b63ffffffff16815181106115df576115df61272f565b6020026020010151604051602001611601929190918252602082015260400190565b60405160208183030381529060405280519060200120828263ffffffff168151811061162f5761162f61272f565b60209081029190910101528061164481612781565b915050611578565b6116576002846126e7565b925061156e565b60018890036116cb57868989600081811061167b5761167b61272f565b90506020020135146116c657868989600081811061169b5761169b61272f565b905060200201356040516327c4ed9760e21b815260040161059d929190918252602082015260400190565b61172c565b86826000815181106116df576116df61272f565b60200260200101511461172c5786826000815181106117005761170061272f565b60200260200101516040516327c4ed9760e21b815260040161059d929190918252602082015260400190565b505050505050505050565b6001600160a01b0381163b6117a45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161059d565b60008051602061287c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6117dc83611ac2565b6000825111806117e95750805b15611078576117f88383611b02565b50505050565b60655460ff166107875760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161059d565b600054610100900460ff1661186e5760405162461bcd60e51b815260040161059d9061269c565b610787336112b7565b606060ff83146118915761188a83611bf6565b905061191e565b81805461189d906127a6565b80601f01602080910402602001604051908101604052809291908181526020018280546118c9906127a6565b80156119165780601f106118eb57610100808354040283529160200191611916565b820191906000526020600020905b8154815290600101906020018083116118f957829003601f168201915b505050505090505b92915050565b80826040013510156119565760408051637acd6fa560e11b81529083013560048201526024810182905260440161059d565b60fe5460408051602081810193909352808201869052918401356060830152830135608082015260009060a00160405160208183030381529060405280519060200120905060006119a682611c35565b905060006119f2826119b887806127e0565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c6292505050565b6001600160a01b038116600090815260fd602090815260409091206002810154929350919087013514611a4b5760028101546040516306427aeb60e01b815260048101919091526020870135602482015260440161059d565b600281018054906000611a5d83612827565b90915550508054851115611aa0578054604051632557019960e21b81526001600160a01b038416600482015260248101919091526044810186905260640161059d565b84816000016000828254611ab49190612533565b909155505050505050505050565b611acb81611737565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611b6a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161059d565b600080846001600160a01b031684604051611b859190612840565b600060405180830381855af49150503d8060008114611bc0576040519150601f19603f3d011682016040523d82523d6000602084013e611bc5565b606091505b5091509150611bed828260405180606001604052806027815260200161289c60279139611c86565b95945050505050565b60606000611c0383611cc6565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600061191e611c42611cee565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000611c718585611e19565b91509150611c7e81611e87565b509392505050565b60608315611c95575081611cbf565b825115611ca55782518084602001fd5b8160405162461bcd60e51b815260040161059d9190612852565b9392505050565b600060ff8216601f81111561191e57604051632cd44ac360e21b815260040160405180910390fd5b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611d4757507f000000000000000000000000000000000000000000000000000000000000000046145b15611d7157507f000000000000000000000000000000000000000000000000000000000000000090565b611374604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6000808251604103611e4f5760208301516040840151606085015160001a611e438782858561203d565b94509450505050611e80565b8251604003611e785760208301516040840151611e6d86838361212a565b935093505050611e80565b506000905060025b9250929050565b6000816004811115611e9b57611e9b612865565b03611ea35750565b6001816004811115611eb757611eb7612865565b03611f045760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161059d565b6002816004811115611f1857611f18612865565b03611f655760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161059d565b6003816004811115611f7957611f79612865565b03611fd15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161059d565b6004816004811115611fe557611fe5612865565b036107745760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161059d565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156120745750600090506003612121565b8460ff16601b1415801561208c57508460ff16601c14155b1561209d5750600090506004612121565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156120f1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661211a57600060019250925050612121565b9150600090505b94509492505050565b6000806001600160ff1b0383168161214760ff86901c601b612179565b90506121558782888561203d565b935093505050935093915050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561191e5761191e612163565b6001600160a01b038116811461077457600080fd5b6000602082840312156121b357600080fd5b8135611cbf8161218c565b6000602082840312156121d057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561220057600080fd5b823561220b8161218c565b9150602083013567ffffffffffffffff81111561222757600080fd5b8301601f8101851361223857600080fd5b803567ffffffffffffffff811115612252576122526121d7565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612281576122816121d7565b60405281815282820160200187101561229957600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080608085870312156122cf57600080fd5b84356122da8161218c565b935060208501356122ea8161218c565b925060408501356122fa8161218c565b9396929550929360600135925050565b60005b8381101561232557818101518382015260200161230d565b50506000910152565b6000815180845261234681602086016020860161230a565b601f01601f19169290920160200192915050565b60ff60f81b8816815260e06020820152600061237960e083018961232e565b828103604084015261238b818961232e565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b818110156123e15783518352602093840193909201916001016123c3565b50909b9a5050505050505050505050565b60008083601f84011261240457600080fd5b50813567ffffffffffffffff81111561241c57600080fd5b6020830191508360208260051b8501011115611e8057600080fd5b60008060008060008060008060008060e08b8d03121561245657600080fd5b8a35995060208b013567ffffffffffffffff81111561247457600080fd5b8b01601f81018d1361248557600080fd5b803567ffffffffffffffff81111561249c57600080fd5b8d60208284010111156124ae57600080fd5b6020919091019950975060408b013567ffffffffffffffff8111156124d257600080fd5b6124de8d828e016123f2565b90985096505060608b013567ffffffffffffffff8111156124fe57600080fd5b61250a8d828e016123f2565b9b9e9a9d50989b979a9699969760808101359760a0820135975060c09091013595509350505050565b8181038181111561191e5761191e612163565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b808202811582820484141761191e5761191e612163565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561269557600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008261270457634e487b7160e01b600052601260045260246000fd5b500490565b63ffffffff818116838216029081169081811461272857612728612163565b5092915050565b634e487b7160e01b600052603260045260246000fd5b63ffffffff818116838216019081111561191e5761191e612163565b60008235605e1983360301811261277757600080fd5b9190910192915050565b600063ffffffff821663ffffffff810361279d5761279d612163565b60010192915050565b600181811c908216806127ba57607f821691505b6020821081036127da57634e487b7160e01b600052602260045260246000fd5b50919050565b6000808335601e198436030181126127f757600080fd5b83018035915067ffffffffffffffff82111561281257600080fd5b602001915036819003821315611e8057600080fd5b60006001820161283957612839612163565b5060010190565b6000825161277781846020870161230a565b602081526000611cbf602083018461232e565b634e487b7160e01b600052602160045260246000fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a176afed95ec44814e895f65d4f2718db626e3857cc95c54389c7913953d67bf64736f6c634300081b0033","r":"0x3f57404b41769ee0943a9276acbccb63d109485a0b1a48b2f6af3eea5a56601e","s":"0x34ae5ac94f00472d0f094c02826ed4702662b2aa4c9c3af6b11c589733a128bd","yParity":"0x1","hash":"0xd14c06b4d9731210486a28a884867866f1add0d449e1f015aca6bc1b351a1850"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x0d83d6bcc44f4340929b877cce749f031f3256c67cb5780bcc8c3bb4ee48f57c","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xd786a16a661b9ced24fd1cdf93288a235b1dc29149c319a8a9e2ac903283b58d","transactionsRoot":"0xa642efc83ffc44c3daf13d256530efc7c64437c78f27e159b31504d36fa55c35","receiptsRoot":"0x7483bec56c82113dab704af126188b0b39b5a2800974ad394e0a84698474a0bb","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x2","gasLimit":"0x1c9c380","gasUsed":"0x4743b","timestamp":"0x66fa9fcd","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x345fce36","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x22","gasLimit":"0x5c9ef","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052348015600f57600080fd5b506104518061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c3565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e0565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610335565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead8160008151811061020457610204610405565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b602080825282518282018190526000918401906040840190835b818110156102b85783516001600160a01b0316835260209384019390920191600101610291565b509095945050505050565b6000602082840312156102d557600080fd5b813561013381610226565b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033081610226565b919050565b60006020828403121561034757600080fd5b815167ffffffffffffffff81111561035e57600080fd5b8201601f8101841361036f57600080fd5b805167ffffffffffffffff8111156103895761038961030f565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156103b6576103b661030f565b6040529182526020818401810192908101878411156103d457600080fd5b6020850194505b838510156103fa576103ec85610325565b8152602094850194016103db565b509695505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220638dfc50b48b81ce46f08a524306ba539127d28202ba77d2bd972c2f6f7bb7b864736f6c634300081b0033","r":"0x708fde2de262a83086ef38474433aea7ccf92e940be70113f1c9d0f4fad4cc35","s":"0x325f48460d6b4f32066107ca605743e4a4da29cd7d54c32e4b96199ed70065ab","yParity":"0x1","hash":"0xe2b4d24e795cbb803b38d6fdd8161d085bc59492340545f2b4192b1f333f7efc"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xa353358546466a6edfc12ffc2251be42f4542e90bfe09816486471a8d00e850c","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x3c734f7d98c26be2de125713c3207615a8c3f713290815736d02c43c05759330","transactionsRoot":"0x689c71b22b221b4c96f3c2d18b3396c951f1455797b43bae33c9d97e6e87e50b","receiptsRoot":"0x3ac0534ebfa5979b07bfd28bf52bdde4439940190294ff5e0df6feaa81d11990","logsBloom":"0x000000000400000000000000400000004000000000000000008000000000000000000000000000000000000000000000000000000080001000000000000000000000000000000000000004000000020000010000000000000002000000000000000000000200000400000001008008000000040000000000000000000000004000000001000000000000000000000000008000000000c0000000000000000000000000000000000000000000000440000000000000000000000000000000008000000020400000200000000000040000010000002008000000000000000020000000000000000000000000000000000000000000000000000000000000400000","difficulty":"0x0","number":"0xe","gasLimit":"0x1c9c380","gasUsed":"0x1dc39","timestamp":"0x66f70aa5","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xdcfcab8","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x18","gasLimit":"0x2b879","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x12e63c8802432638e55121476f3412882d53de7f4564ba7b554a55ded0426995","s":"0x991f125ee1e2da668ff168b5b169d99cb2c03e0725be5c5b9980ee3e1a2f299","yParity":"0x1","hash":"0x46592688e43f9f32c373934da7a3fda6407d13c9a010b772b5d79bfc1b7a9b17"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x2f1135f0c94511e50fccb0d74f654cdefcbe7279ce4484af1b28db7826c62bbf","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x53d634f8e9826a2d10ea814c169d3ccc6c84159ee9df93a423163265154733ea","transactionsRoot":"0x0bc54817d649219fb6f9ba45a6dea9f845c303b1a7ac435aeeeb70acdb865fc5","receiptsRoot":"0x6b4e27e5af879c9614bfd8d956783a1e3c5b51a20373a624b1c46c0c623ad973","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000400000000080000400000000000000000000000000001001000000000000000000000000002000000000250000000010000000000400000000000000000000000000000000000000000800000000000000000000000040000000008000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000420000000000001000000000000000000000000000000000000000000000001000000000100000000000000","difficulty":"0x0","number":"0x3","gasLimit":"0x1c9c380","gasUsed":"0x2cebb0","timestamp":"0x66f70a9a","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x2df978a5","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2","gasLimit":"0x191db","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052348015600f57600080fd5b50607780601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220d9b5867338741992fb34ad4d7cbd0a6be2f72f88e519e77dfae6583d2333734564736f6c63430008180033","r":"0xcc5d90bdaf9a7732f15fafad180f48b9b2c221bdadeed2944122e843f6d7b71a","s":"0x1e333403161d867bd74dd69b6803400c0a7e51bff4c3b7fc913b790da950ec9d","yParity":"0x0","hash":"0x7c88615875ed593e5512621866226fb087d83925659156131063568e3b1e5782"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x3","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xf64a79f4294e8b61a9a0a4bc3b4680de5411b7bf47f750b3fd83d6492e456a35","s":"0x92360881a9cf75d30c0d67a39e83985139762ea9d5ec708a64ae1ab4f289ac0","yParity":"0x1","hash":"0x5c7a4ba4a102cd96d6960e6552a8521370dc6e81b59af7385b7c4e27edd119c5"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x4","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x2c9d86019f3a1932b5730b589835752eebe3b9060bd181e2c464390452ad6078","s":"0x4aa2fe7a61f43425ace9284a0277ad5e47d79af795454e2d6cdcad184abc3943","yParity":"0x0","hash":"0x761d8cd21ff98b87e7d01571b73e98b14a6c22bfcf8516703399d7dec0e9ad51"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x5","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x77ce9904fe7d98dec65d6eb11ce8ad38e8fa329b87b809ddccf0206c8046a9b4","s":"0x3ab6abd1026a30a6b3b8dbecaf9ff1c7a5fbab112c0ca405cbd4773a9fe12a38","yParity":"0x0","hash":"0xf1a5f1bb3c7c6e852bf93d19d49759d4f1fc89d9550b807365b50b1d92eca9a8"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x6","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x665a2c6aab648e9735d3707f9a73fdb76a3e303c77bc3588ef18efead4f398e2","s":"0x6d4ec9ab790894fc9be81ab226e68930cc85ff7165ca0eedb725f409cad91f9c","yParity":"0x1","hash":"0xee9e2b75dd907e5bc685f65bbb929ae6b4f01a2cf9c934a8c951ee1597892033"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x7","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x7e836173050b56255124b55ebfba33a2de4317d88c930a7cacc0d5bfcc705ddf","s":"0x55ab3710a2c30eb634f41ea7432ecb64b58f73f82406a0a8729e87032ee6fda","yParity":"0x1","hash":"0x161f78fddd9b65099690d01a50167cc1be40231289bc22f8839d75e68c113d89"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x3b59b970eb7bc45e575508d12aeb8864040232a3ea40fa4948cbb06dda6d03ec","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x838256faba0b640b202bfb24b206077bbe67f6903be14ce9a0e9e81c0be1e07a","transactionsRoot":"0xf173ec3c1ea9a705928a5bb6807298c1cd21919dab66d2b2f1aa51d346eea981","receiptsRoot":"0xaa45a2a04ed9d4c583eb8f9da3f7d4f739fac790d69d3576958868fe06b97388","logsBloom":"0x00000000000001000000000000000000000000000000000000000000000000000000000020000800000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000008000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000","difficulty":"0x0","number":"0xb","gasLimit":"0x1c9c380","gasUsed":"0x455c56","timestamp":"0x66f70aa2","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x13a227bf","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x11","gasLimit":"0x38e9cd","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6101206040523480156200001257600080fd5b50604051620034a9380380620034a983398101604081905262000035916200014b565b6001600160a01b0380861660805280851660a05280841660c05280831660e0528116610100526200006562000070565b5050505050620001cb565b600054610100900460ff1615620000dd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000130576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200014857600080fd5b50565b600080600080600060a086880312156200016457600080fd5b8551620001718162000132565b6020870151909550620001848162000132565b6040870151909450620001978162000132565b6060870151909350620001aa8162000132565b6080870151909250620001bd8162000132565b809150509295509295909350565b60805160a05160c05160e051610100516132686200024160003960008181610636015281816106e001528181610b0e015281816113ea0152818161187e015261196e01526000610542015260006102e601526000818161027a01528181611369015261203c0152600061041401526132686000f3fe6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125b8565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107265760405162461bcd60e51b815260040161071d90612609565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca008361267d565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126a7565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f3833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126cf565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126ec565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a309190612736565b610a4c5760405162461bcd60e51b815260040161071d90612758565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b4b5760405162461bcd60e51b815260040161071d90612609565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321383398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321383398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca008261267d565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a0565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127bc565b9250846001600160a01b03166000805160206131f383398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126a7565b90915550506040518381526001600160a01b038616906000805160206131f38339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c79190612736565b6110e35760405162461bcd60e51b815260040161071d90612758565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127f8565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128e561090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612862565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114275760405162461bcd60e51b815260040161071d90612609565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca008261267d565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b6020526040812054611545908390612877565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca008361289e565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126a7565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a0565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f3833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b2565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126cf565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126ec565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a0565b905061090b565b611e408383612877565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128cb565b9091555060408051610940810190915261090e8082526000916120a491839133916128e56020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612862565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff8082111561257457600080fd5b61258089838a016124fb565b9097509550602088013591508082111561259957600080fd5b506125a6888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125ce57600080fd5b84356125d9816123f6565b935060208501356125e9816123f6565b925060408501356125f9816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261268c5761268c612667565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126c7576126c7612691565b505092915050565b6000602082840312156126e157600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274857600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127b5576127b5612691565b5060000390565b8181038181111561090b5761090b612691565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061280c6060830187896127cf565b828103602084015261281f8186886127cf565b9150508260408301529695505050505050565b6000815160005b818110156128535760208185018101518683015201612839565b50600093019283525090919050565b60006123ee6128718386612832565b84612832565b818103600083128015838313168383128216171561289757612897612691565b5092915050565b6000826128ad576128ad612667565b500790565b6000602082840312156128c457600080fd5b5051919050565b6000600182016128dd576128dd612691565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220517f086e259f6d4f92497674fa8b87966eef35c1226b2e6369f2a0bdacf2836964736f6c634300081800330000000000000000000000004242424242424242424242424242424242424242000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x13c1e805158ef4263e9ca596d313c2b591a42a775128739d58793545ddbe41d6","s":"0x26b803878bfbdb09586e24d70fdea1ae68e15d5ad41c31dc93144ff5f02de927","yParity":"0x0","hash":"0x9d7618bb7ef673579140052a4a7c85411d535c358070cafc44f12ba93b41d504"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x12","gasLimit":"0x213a94","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a06040523480156200001157600080fd5b5060405162001ec538038062001ec58339810160408190526200003491620001a8565b6001600160a01b038116620000cb5760405162461bcd60e51b815260206004820152604c60248201527f44656c617965645769746864726177616c526f757465722e636f6e737472756360448201527f746f723a205f656967656e506f644d616e616765722063616e6e6f742062652060648201526b7a65726f206164647265737360a01b608482015260a4015b60405180910390fd5b6001600160a01b038116608052620000e2620000e9565b50620001da565b600054610100900460ff1615620001535760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401620000c2565b60005460ff9081161015620001a6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b600060208284031215620001bb57600080fd5b81516001600160a01b0381168114620001d357600080fd5b9392505050565b608051611cc8620001fd600039600081816101fa0152610be00152611cc86000f3fe60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f0565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a13565b610aba565b34801561032357600080fd5b50610337610332366004611a13565b610b3d565b6040516101bf9190611a3f565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4d565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a13565b610f0e565b34801561043157600080fd5b50610170610440366004611a86565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acc565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b22565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b3f565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b89565b6105f65760405162461bcd60e51b815260040161055990611bab565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c09565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1c565b8154811061071d5761071d611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1c565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c45565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1c565b8154811061082757610827611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c2f565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c09565b905060008167ffffffffffffffff8111156108dd576108dd611c45565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1c565b8154811061096557610965611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c2f565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b89565b610a675760405162461bcd60e51b815260040161055990611bab565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c2f565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1c565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000000000000000000000000000000000000000000000169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b22565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5b565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c09565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5b565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5b565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b22565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b3f565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1c565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1c565b8154811061163357611633611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1c565b43101561168657506116a6565b805161169b906001600160e01b031686611c1c565b9450506001016115e2565b6116b08184611c1c565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1c565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000919060409081850190868401855b828110156119e3576119d3848351611985565b92840192908501906001016119c0565b5091979650505050505050565b600060208284031215611a0257600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2657600080fd5b8235611a3181611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6057600080fd5b8235611a6b81611933565b91506020830135611a7b81611933565b809150509250929050565b60008060008060808587031215611a9c57600080fd5b8435611aa781611933565b93506020850135611ab781611933565b93969395505050506040820135916060013590565b602080825282518282015282810151604080840181905281516060850181905260009392830191849160808701905b8084101561088657611b0e828651611985565b938501936001939093019290820190611afb565b600060208284031215611b3457600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9b57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf3565b80820180821115610b3757610b37611bf3565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122008c24927adbff47182d3eb1466e14dfabce75639c9bbc81de71096db25fc9c1c64736f6c634300081800330000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6","r":"0x2a0b5f9100f7d81d5e51572af3a51495b2e49ebcf1cbf6b95537eb33f7902695","s":"0x7c6e95996e5a93dbfa6db9d515bfe2fa20d0a73dfdaa4c062b1b432eb2d5215b","yParity":"0x0","hash":"0x9bd6c2f1599b5920937e13a0c12fe12f3068761b0d4a90c433151d72a33fde39"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x954fd7ecc31365f6bc4688905df1ef72db374fe08559b7771e709e03db20c1e2","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x511edd42f51e1280bc7e52dcdc9c8b753643c88a3237abbd74fbceb2e375b4ce","transactionsRoot":"0x06f3adace2e2edb3c8a54204d047777afa40fd5806c24ce04849bfd82a2dfa3b","receiptsRoot":"0x26199c7cbeebef88cb082c61e3a2753d87dd22f85d52da1422fec842cb8dd4f5","logsBloom":"0x00000000000000000000000000000000400400000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000010000000000000400008000000000000000000010000000020000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000001000","difficulty":"0x0","number":"0x3","gasLimit":"0x1c9c380","gasUsed":"0x117e5c","timestamp":"0x66fa9fce","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x2df471b7","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x23","gasLimit":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x42e396dabe9eed8c2e627e2efe76a80f0dfaa1402cff9b8a2659ac5cce30032","s":"0x30b4eb25ae73052e8f60644329cb6d09bc57e624c4ed03a78e3b3dd3cf6de6b6","yParity":"0x0","hash":"0x1477f2503d2c830cd5dbe18d759733ee204a05f41077e044ee3f87d7b460fb74"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x24","gasLimit":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x7aca2aae5f6d4d5c8da638ebff9c76fad83128ee18c5cf32def7670b6ad9e60c","s":"0x1799d84f8dbdb21289e8e54405674eb8c173187976e720f551b64c52f04e1e3a","yParity":"0x0","hash":"0xa7204669c318eb0baf1e98348c0ef6a1156ae7d409198ca1e837bc121d9fecec"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xa98d4cd4839b8b077682c09968841be27c533967045a3a117a9c457f91861423","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x452741ee2a897fb9ede381f5bb64f66680a623283404db876d6138398e103ae8","transactionsRoot":"0xc567425a27110fb296ce286da05ee8bf1d65ff0345c701bec43ab410df14efd5","receiptsRoot":"0x9e712073501b05fc21cb8c2d9b98074bb6f58ecdad41ed475c3a1cd64f1a9ee3","logsBloom":"0x00000000000000000000000000000000400000000000000000800000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000002200001000000000400000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400002000000000000000000000000001000000000020000000200000000000040000040000002000000001000000000020000000000080000000000000000000000000000000000000000000000400000000","difficulty":"0x0","number":"0xd","gasLimit":"0x1c9c380","gasUsed":"0x3e6d1","timestamp":"0x66fa9fd8","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xf146e97","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x38","gasLimit":"0x511fb","maxFeePerGas":"0x266bd50b","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60806040526040516104da3803806104da833981016040819052610022916102d1565b61002e82826000610035565b50506103f4565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104b360279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6101e85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610136565b600080856001600160a01b03168560405161020391906103a5565b600060405180830381855af49150503d806000811461023e576040519150601f19603f3d011682016040523d82523d6000602084013e610243565b606091505b50909250905061025482828661025e565b9695505050505050565b6060831561026d5750816100c6565b82511561027d5782518084602001fd5b8160405162461bcd60e51b815260040161013691906103c1565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102c85781810151838201526020016102b0565b50506000910152565b600080604083850312156102e457600080fd5b82516001600160a01b03811681146102fb57600080fd5b60208401519092506001600160401b0381111561031757600080fd5b8301601f8101851361032857600080fd5b80516001600160401b0381111561034157610341610297565b604051601f8201601f19908116603f011681016001600160401b038111828210171561036f5761036f610297565b60405281815282820160200187101561038757600080fd5b6103988260208301602086016102ad565b8093505050509250929050565b600082516103b78184602087016102ad565b9190910192915050565b60208152600082518060208401526103e08160408501602087016102ad565b601f01601f19169190910160400192915050565b60b1806104026000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212205dc7632c28b0e81a7d9842ec88e360ef8949d326f6f9e7e1a8eff8de6eb4842164736f6c634300081b0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba30000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008463acc14d0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e800000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc41817b5c5b0c3dcda70ccb43ba175fdcd7e586f9e0484422a2c6bba678fdf4a300000000000000000000000000000000000000000000000000000000","r":"0xdce65fcb256796e189494445481efff060ca3800526e1ee868f15b359cd03ca8","s":"0x5e4cf7f7b71937b223dad9f4068e73d607c728e689f9afb548390c45f181bdaa","yParity":"0x1","hash":"0x788f78c4b8ffe070842988b7fdc9a4812331fe7b4e3c432cbd974fb15f018dbe"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x8fddef1a860c2edab45f730bdb41cae8101050bbae2a8da34458d9925f75346e","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x1848924d0a1b91e216d7685ed00823988cffcb8540adb95a6cd6f41714f39b04","transactionsRoot":"0xdc0b90c78ea0bdad867e4a5bf5e24490be7269669821297ab6c1cfbd5d272f6d","receiptsRoot":"0x04d5de77f83e9f88230b5f90e3ee3be6d60363fa066d1279b862c4914bc0add8","logsBloom":"0x00002000000000000000000000000000400000000000000000000000020000000000000000000000000400000000000080c00010000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000100000000000500000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000080000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x4","gasLimit":"0x1c9c380","gasUsed":"0x1a3d8a","timestamp":"0x66fa9fcf","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x28a648c3","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x25","gasLimit":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xc881cba8e2a18a0f2633cbe307c7be9ee58979202f37773c708330114b8e69a9","s":"0x5ac2258c15dcf496de39e20b80faf85866f93527128863f3bf9f82228079ae66","yParity":"0x0","hash":"0x871e7f0a2ec684bd5ac037523564f5803521a08648d94b944eb7379a310cbe83"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x26","gasLimit":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x3bfa37b7c67a31f503831aa3acaf2fecb72601e1a340e94113b53272bc67817b","s":"0x75cb499eb5440674239ff1f8db33258719c48323c4010795784019fc3c1a9b7","yParity":"0x0","hash":"0x6759da13c2e19bf5e0b93cf402e93b385fc612e9e11c33212f128ad1aaca2cf8"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x27","gasLimit":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x22c5275356c27c879c2835829dde1b364b9f7c699a8bc05b088c6b8533b953a1","s":"0x769910decb8f09a827116fb370f56189c9c0499f534f1dbda76929f797accf0b","yParity":"0x1","hash":"0xba54405e61670e8eeb8596a47a22c52a11eff05d75cb443ab8f5dfb25a7ceb0c"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x282d23ca81d55c3feed07c818845e579a11199a8de95416327a7443e60ba11c8","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xa950565811838c75dcc717eb9948cc30716d90d3cc7719ac6ad35a880ae14769","transactionsRoot":"0x3e1968c04882ad23fd1530089437e1e24f8996fbf1d142a7ca32a57acaa511ba","receiptsRoot":"0x214d8f88cb1c311943d89ace49cbfee100ab30a3060fde9585edaad2fb7e767f","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000008000000000000000000010100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000","difficulty":"0x0","number":"0x9","gasLimit":"0x1c9c380","gasUsed":"0x8194","timestamp":"0x66fa9fd4","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x18ad824e","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x33","gasLimit":"0xb2fa","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","value":"0x0","accessList":[],"input":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x90dcf40fac3bd3bc84c5de77b7be73a9000e03dd71eaaa9de36cb38f0c1d6a72","s":"0x744a735ca78476fdd39a4ca426d287a16c228dedbf93a47c395a8e4747346335","yParity":"0x0","hash":"0xd3871eb6a2abee19230609004acda2e37090663ebffa73f1cc1de44467665fda"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x512c15c3770e645be22b8b577a2116eae30b1a28221ddff3feb06ada33df8b1c","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xb9af728822fa59aa889ddaf4da209d98893f482bcc0579fe6a2aca79206fed4c","transactionsRoot":"0x3827b67f22a45025f05672e5eb96c9fa1036bf7a447ac060e257f015908a1955","receiptsRoot":"0xb2ec0fee729eb803e50a9d501540de5b535d55ba3f2e065ba0a15b723eb56080","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000000000000000400000000000","difficulty":"0x0","number":"0x7","gasLimit":"0x1c9c380","gasUsed":"0x4cfa36","timestamp":"0x66f70a9e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1d762812","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xc","gasLimit":"0x640a91","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6101006040523480156200001257600080fd5b5060405162005beb38038062005beb833981016040819052620000359162000140565b6001600160a01b0380841660805280821660c052821660a0526200005862000065565b50504660e0525062000194565b600054610100900460ff1615620000d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000125576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013d57600080fd5b50565b6000806000606084860312156200015657600080fd5b8351620001638162000127565b6020850151909350620001768162000127565b6040850151909250620001898162000127565b809150509250925092565b60805160a05160c05160e0516159c26200022960003960006126560152600081816105b10152818161101d0152818161139901528181611be5015281816129b001528181613e5b0152614347015260006107620152600081816104f901528181610feb0152818161136701528181611c7901528181612a7d01528181612c0001528181613f8101526143ed01526159c26000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614954565b610de8565b005b6103da6103ea3660046149a7565b610f2d565b6103da6103fd3660046149cb565b610fe0565b6103da610410366004614a0c565b611097565b6103da610423366004614a25565b6111d6565b61035a6104363660046149a7565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149cb565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a90565b611218565b6103da6104bc3660046149cb565b61135c565b61035a6104cf3660046149a7565b609b6020526000908152604090205481565b6103da6104ef366004614b37565b61140c565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610364565b61051b6105413660046149a7565b6001600160a01b039081166000908152609960205260409020600101541690565b6105756105703660046149a7565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e3c565b611626565b610575610606366004614e78565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614ea9565b611656565b6103da610644366004614a0c565b6116ef565b61051b6106573660046149a7565b609a602052600090815260409020546001600160a01b031681565b6105756106803660046149a7565b611700565b6103da611721565b61035a61069b366004614f38565b609860209081526000928352604080842090915290825290205481565b6103da6106c6366004615019565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150a9565b611961565b6040516103649190615134565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da610738366004615147565b611a33565b61035a61074b3660046149a7565b609f6020526000908152604090205481565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b610575610792366004614a0c565b609e6020526000908152604090205460ff1681565b6105756107b536600461517c565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec3660046149a7565b60a16020526000908152604090205481565b61086e61080c3660046149a7565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151a8565b611b05565b61035a62034bc081565b6108d46108cf3660046149a7565b611bbe565b60405161036492919061522a565b6103ba6108f03660046149a7565b611f75565b6103da61090336600461524f565b61242e565b6103da6109163660046152a7565b61254b565b6103da6109293660046149a7565b6125dc565b61035a612652565b6103da610944366004614a0c565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152c3565b905060200201602081019061098691906149a7565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152d9565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614bd9565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152c3565b9050602002810190610b4e9190615310565b610b5c906020810190615330565b9050878783818110610b7057610b706152c3565b9050602002810190610b829190615310565b610b8c9080615330565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152c3565b9050602002810190610c269190615310565b610c379060608101906040016149a7565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152c3565b9050602002810190610cdc9190615310565b610ced9060608101906040016149a7565b8a8a86818110610cff57610cff6152c3565b9050602002810190610d119190615310565b610d1b9080615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152c3565b9050602002810190610d739190615310565b610d81906020810190615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152c3565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615379565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153cb565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa491906153fa565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615417565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061103f5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61105b5760405162461bcd60e51b8152600401610ab590615461565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154be565b61111f5760405162461bcd60e51b8152600401610ab5906154db565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806113bb5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113d75760405162461bcd60e51b8152600401610ab590615461565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152c3565b90506020028101906114bd9190615523565b8989848181106114cf576114cf6152c3565b90506020028101906114e19190615330565b8989868181106114f3576114f36152c3565b9050602002013588888781811061150c5761150c6152c3565b90506020020160208101906115219190615539565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154be565b6115e75760405162461bcd60e51b8152600401610ab5906154db565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155ca565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614bd9565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152c3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152c3565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153cb565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5291906155dd565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea9190810190615655565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152c3565b602002602001018181525050611f68565b8351611dc7906001615725565b6001600160401b03811115611dde57611dde614bd9565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614bd9565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152c3565b6020026020010151838281518110611e8757611e876152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152c3565b6020026020010151828281518110611ed357611ed36152c3565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615738565b81518110611f1b57611f1b6152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615738565b81518110611f5b57611f5b6152c3565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152d9565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614bd9565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152c3565b602002602001015182600081518110612396576123966152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152c3565b6020026020010151816000815181106123e3576123e36152c3565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152c3565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f00000000000000000000000000000000000000000000000000000000000000004603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270691906153fa565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615417565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152c3565b602002602001015186858151811061295b5761295b6152c3565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152c3565b60200260200101516001600160a01b031603612a60577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb89888584815181106129f0576129f06152c3565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612abc57612abc6152c3565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154be565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612c4057612c406152c3565b6020026020010151868581518110612c5a57612c5a6152c3565b60200260200101516040518463ffffffff1660e01b8152600401612c809392919061574b565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361576f565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d999083908590615788565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157a1565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157a1565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c82826157de565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615379565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152d9565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152c3565b6020026020010151858581518110613220576132206152c3565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615738565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f9392919061574b565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152c3565b90506020020160208101906134be91906149a7565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152c3565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615725565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f9392919061574b565b60006139776105f387615841565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157a1565b63ffffffff16613a1d9190615725565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab560608701604088016149a7565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615330565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615330565b9050811015613d23574360a16000613c0b60a08b018b615330565b85818110613c1b57613c1b6152c3565b9050602002016020810190613c3091906149a7565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157a1565b63ffffffff16613c6a9190615725565b1115613c885760405162461bcd60e51b8152600401610ab59061584d565b613d1b613c9860208901896149a7565b33613ca660a08b018b615330565b85818110613cb657613cb66152c3565b9050602002016020810190613ccb91906149a7565b613cd860c08c018c615330565b86818110613ce857613ce86152c3565b905060200201358a8a87818110613d0157613d016152c3565b9050602002016020810190613d1691906149a7565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615330565b9050811015614114574360a16000613d6c60a08c018c615330565b85818110613d7c57613d7c6152c3565b9050602002016020810190613d9191906149a7565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157a1565b63ffffffff16613dcb9190615725565b1115613de95760405162461bcd60e51b8152600401610ab59061584d565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615330565b83818110613e1b57613e1b6152c3565b9050602002016020810190613e3091906149a7565b6001600160a01b031603613f7f576000613e4d60208a018a6149a7565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613e8e60c08e018e615330565b87818110613e9e57613e9e6152c3565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1691906155dd565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615330565b88818110613f5c57613f5c6152c3565b9050602002016020810190613f7191906149a7565b856138ee565b50505061410c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea133898985818110613fc157613fc16152c3565b9050602002016020810190613fd691906149a7565b613fe360a08d018d615330565b86818110613ff357613ff36152c3565b905060200201602081019061400891906149a7565b61401560c08e018e615330565b87818110614025576140256152c3565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615330565b858181106140ce576140ce6152c3565b90506020020160208101906140e391906149a7565b6140f060c08d018d615330565b86818110614100576141006152c3565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061419290869086906004016158d5565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d3919061592c565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b1300906143809088908890879060040161574b565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615956565b036144f25750565b600181600481111561450657614506615956565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615956565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615956565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615956565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615725565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b6020808252825182820181905260009190848201906040850190845b818110156148ef578351835292840192918401916001016148d3565b50909695505050505050565b60006060828403121561490d57600080fd5b50919050565b60008083601f84011261492557600080fd5b5081356001600160401b0381111561493c57600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561496957600080fd5b61497385856148fb565b925060608401356001600160401b0381111561498e57600080fd5b61499a86828701614913565b9497909650939450505050565b6000602082840312156149b957600080fd5b81356149c481614837565b9392505050565b6000806000606084860312156149e057600080fd5b83356149eb81614837565b925060208401356149fb81614837565b929592945050506040919091013590565b600060208284031215614a1e57600080fd5b5035919050565b60008060008060408587031215614a3b57600080fd5b84356001600160401b0380821115614a5257600080fd5b614a5e888389016147b2565b90965094506020870135915080821115614a7757600080fd5b50614a84878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aac57600080fd5b8835614ab781614837565b97506020890135614ac781614837565b9650604089013595506060890135945060808901356001600160401b0380821115614af157600080fd5b614afd8c838d016147b2565b909650945060a08b0135915080821115614b1657600080fd5b50614b238b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b5357600080fd5b88356001600160401b0380821115614b6a57600080fd5b614b768c838d016147b2565b909a50985060208b0135915080821115614b8f57600080fd5b614b9b8c838d016147b2565b909850965060408b0135915080821115614bb457600080fd5b614bc08c838d016147b2565b909650945060608b0135915080821115614b1657600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1157614c11614bd9565b60405290565b604080519081016001600160401b0381118282101715614c1157614c11614bd9565b604051601f8201601f191681016001600160401b0381118282101715614c6157614c61614bd9565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c69565b60006001600160401b03821115614c9f57614c9f614bd9565b5060051b60200190565b600082601f830112614cba57600080fd5b81356020614ccf614cca83614c86565b614c39565b8083825260208201915060208460051b870101935086841115614cf157600080fd5b602086015b84811015614d16578035614d0981614837565b8352918301918301614cf6565b509695505050505050565b600082601f830112614d3257600080fd5b81356020614d42614cca83614c86565b8083825260208201915060208460051b870101935086841115614d6457600080fd5b602086015b84811015614d165780358352918301918301614d69565b600060e08284031215614d9257600080fd5b614d9a614bef565b9050614da58261484c565b8152614db36020830161484c565b6020820152614dc46040830161484c565b604082015260608201356060820152614ddf60808301614c7b565b608082015260a08201356001600160401b0380821115614dfe57600080fd5b614e0a85838601614ca9565b60a084015260c0840135915080821115614e2357600080fd5b50614e3084828501614d21565b60c08301525092915050565b600060208284031215614e4e57600080fd5b81356001600160401b03811115614e6457600080fd5b614e7084828501614d80565b949350505050565b600060208284031215614e8a57600080fd5b813560ff811681146149c457600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ec157600080fd5b85356001600160401b0380821115614ed857600080fd5b9087019060e0828a031215614eec57600080fd5b90955060208701359080821115614f0257600080fd5b50614f0f888289016147b2565b909550935050604086013591506060860135614f2a81614e9b565b809150509295509295909350565b60008060408385031215614f4b57600080fd5b8235614f5681614837565b91506020830135614f6681614837565b809150509250929050565b600060408284031215614f8357600080fd5b614f8b614c17565b905081356001600160401b0380821115614fa457600080fd5b818401915084601f830112614fb857600080fd5b8135602082821115614fcc57614fcc614bd9565b614fde601f8301601f19168201614c39565b92508183528681838601011115614ff457600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a0868803121561503157600080fd5b853561503c81614837565b9450602086013561504c81614837565b935060408601356001600160401b038082111561506857600080fd5b61507489838a01614f71565b9450606088013591508082111561508a57600080fd5b5061509788828901614f71565b95989497509295608001359392505050565b600080604083850312156150bc57600080fd5b82356150c781614837565b915060208301356001600160401b038111156150e257600080fd5b6150ee85828601614ca9565b9150509250929050565b60008151808452602080850194506020840160005b838110156151295781518752958201959082019060010161510d565b509495945050505050565b6020815260006149c460208301846150f8565b6000806020838503121561515a57600080fd5b82356001600160401b0381111561517057600080fd5b61482b85828601614913565b6000806040838503121561518f57600080fd5b823561519a81614837565b946020939093013593505050565b600080600080608085870312156151be57600080fd5b84356151c981614837565b93506020850135925060408501356151e081614837565b9396929550929360600135925050565b60008151808452602080850194506020840160005b838110156151295781516001600160a01b031687529582019590820190600101615205565b60408152600061523d60408301856151f0565b828103602084015261120f81856150f8565b60008060006060848603121561526457600080fd5b833561526f81614837565b925060208401356001600160401b0381111561528a57600080fd5b61529686828701614f71565b925050604084013590509250925092565b6000606082840312156152b957600080fd5b6149c483836148fb565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261532657600080fd5b9190910192915050565b6000808335601e1984360301811261534757600080fd5b8301803591506001600160401b0382111561536157600080fd5b6020019150600581901b36038213156144cf57600080fd5b60608101823561538881614837565b6001600160a01b0390811683526020840135906153a482614837565b16602083015260408301356153b881614c69565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561540c57600080fd5b81516149c481614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154d057600080fd5b81516149c481614e9b565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261532657600080fd5b60006020828403121561554b57600080fd5b81356149c481614e9b565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a08501526155b160e08501826151f0565b905060c083015184820360c086015261120f82826150f8565b6020815260006149c46020830184615556565b6000602082840312156155ef57600080fd5b5051919050565b600082601f83011261560757600080fd5b81516020615617614cca83614c86565b8083825260208201915060208460051b87010193508684111561563957600080fd5b602086015b84811015614d16578051835291830191830161563e565b6000806040838503121561566857600080fd5b82516001600160401b038082111561567f57600080fd5b818501915085601f83011261569357600080fd5b815160206156a3614cca83614c86565b82815260059290921b840181019181810190898411156156c257600080fd5b948201945b838610156156e95785516156da81614837565b825294820194908201906156c7565b9188015191965090935050508082111561570257600080fd5b506150ee858286016155f6565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261570f565b818103818111156109c2576109c261570f565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157815761578161570f565b5060010190565b828152604060208201526000614e706040830184615556565b6000602082840312156157b357600080fd5b81356149c481614c69565b80546001600160a01b0319166001600160a01b0392909216919091179055565b81356157e981614837565b6157f381836157be565b5060018101602083013561580681614837565b61581081836157be565b50604083013561581f81614c69565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d80565b6020808252606e9082015260008051602061596d83398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b8281526000602060406020840152835180604085015260005b8181101561590a578581018301518582016060015282016158ee565b506000606082860101526060601f19601f830116850101925050509392505050565b60006020828403121561593e57600080fd5b81516001600160e01b0319811681146149c457600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a264697066735822122077e25f9c65861d9bf718b537427551bab355394bebd5f95b15c4df6972929f1b64736f6c63430008180033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c8530000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6","r":"0xc68dd6e1bb76f2dbd61057cfa25406f59dc73abcbe7b592a25d2b0dc17ee078a","s":"0x7230339b928106000fc5638382c44be8adf4637d7ea0cebde9077f998e65c8a1","yParity":"0x1","hash":"0xb02326216f7078ab71c5aeb30702c1981388c12cefe2b4368b3600f6686ea6d4"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x0","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x66fa9fca","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0x4d32275554dd98a99e2baab8bcef04f67cb68824f3545606eefafcd92a5ab084","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x051bfecf5c6ae419a8a1fbfe60dd107dff1f7bf19a8b943081c8b2516ca5786c","transactionsRoot":"0xba82992e01153cc8d5e590cc34429d464cfe2513921b1518a1f02f90208fd30a","receiptsRoot":"0x7b53a3abfae44e76a96947cbf7a683de50e0d3965aac07c37afbc4ff76cf5900","logsBloom":"0x00000000001000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000200000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x10","gasLimit":"0x1c9c380","gasUsed":"0x18ad25","timestamp":"0x66f70aa7","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xa99e52f","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1a","gasLimit":"0x2011e6","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a06040523480156200001157600080fd5b5060405162001d4038038062001d40833981016040819052620000349162000116565b6001600160a01b038116608052806200004c62000054565b505062000148565b600054610100900460ff1615620000c15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000114576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012957600080fd5b81516001600160a01b03811681146200014157600080fd5b9392505050565b608051611bc76200017960003960008181610216015281816107a801528181610b490152610c130152611bc76000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000000000000000000000000000000000000000000081565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220157b8fd2af6cc8480450ce674c8687dcbdc3c3a46aa68acd19633d494b70b35b64736f6c63430008180033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9","r":"0xcca04f1dd985285653fda93806ee790eb9e1d794e136d5e0816f99fd69c63dbe","s":"0x6cd4fd5cfe695a5e87c41e8951b37f84f0a3bcbc7fca657cbd5fd6220eec65ed","yParity":"0x1","hash":"0xf1758982dc7bf99172677ea91a0550c18e81f94f596a492e4a70e35aca4d7a0f"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x9e40759671d0d7a05a59d81f7501b4d17b27ee94a023faaee83f20d2091a5f51","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x5af218d6ddec715ac00ba700d7021803ee090c97bdce58b9961ad33ea7fd3d6e","transactionsRoot":"0x2315dc983490ee7381fc16cdcab9f8e9d9958a3f2572ea1d732347532103c23f","receiptsRoot":"0xedce31733a960185a1708200472bcf98b912c7823c882683577f4f7e024e903c","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000008000000000","difficulty":"0x0","number":"0xa","gasLimit":"0x1c9c380","gasUsed":"0x1a572b","timestamp":"0x66fa9fd5","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x15999117","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x34","gasLimit":"0x21b8a6","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052348015600f57600080fd5b50611dcb8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114ac565b60405180910390f35b6100a361009e3660046114e8565b610245565b6040516100879190611653565b6100c36100be3660046116c4565b6106c5565b6040516100879190611713565b6100e36100de3660046117aa565b6107d2565b60405161008791906118ab565b6101036100fe366004611963565b610eea565b60405161008791906119c6565b61012361011e3660046119fe565b6110a8565b604051610087929190611a35565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a56565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a6c565b82828151811061022b5761022b611a56565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a85565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a85565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a85565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a56565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611aa2565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a56565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a56565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a85565b6001600160a01b031681526020018383815181106105b6576105b6611a56565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a56565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b37565b6001600160601b031681525085858151811061068257610682611a56565b6020026020010151828151811061069b5761069b611a56565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a56565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a85565b8282815181106107b2576107b2611a56565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a85565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b60565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611ba7565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c64565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611ba7565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a56565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a56565b905060200201358e88600001518681518110610a9257610a92611a56565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c8d565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a56565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a56565b905060200201358d8d8860ff16818110610c2d57610c2d611a56565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611cb6565b85606001518560ff1681518110610cc057610cc0611a56565b60200260200101518481518110610cd957610cd9611a56565b63ffffffff9092166020928302919091019091015282610cf881611ce9565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a56565b60200260200101518181518110610d8957610d89611a56565b6020026020010151828281518110610da357610da3611a56565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a56565b602002602001018190525050508080610df390611d02565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a85565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d21565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611ba7565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d4b565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611ba7565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a56565b602002602001015187868581518110610ff257610ff2611a56565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c8d565b6001600160c01b031682828151811061108b5761108b611a56565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a56565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d4b565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611ba7565b60008151811061117657611176611a56565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c8d565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a56565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611ce9565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d6a565b909216918061132981611d7d565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b915060208301356001600160401b038111156113f157600080fd5b8301601f8101851361140257600080fd5b803561141561141082611395565b611365565b8082825260208201915060208360051b85010192508783111561143757600080fd5b6020840193505b8284101561146257833561145181611337565b82526020938401939091019061143e565b809450505050509250929050565b600081518084526020840193506020830160005b828110156114a2578151865260209586019590910190600101611484565b5093949350505050565b6020815260006114bf6020830184611470565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114e3816114c6565b919050565b6000806000606084860312156114fd57600080fd5b833561150881611337565b925060208401356001600160401b0381111561152357600080fd5b8401601f8101861361153457600080fd5b80356001600160401b0381111561154d5761154d61134f565b611560601f8201601f1916602001611365565b81815287602083850101111561157557600080fd5b8160208401602083013760006020838301015280945050505061159a604085016114d8565b90509250925092565b600082825180855260208501945060208160051b8301016020850160005b8381101561164757848303601f190188528151805180855260209182019185019060005b8181101561162e57835180516001600160a01b03168452602080820151818601526040918201516001600160601b031691850191909152909301926060909201916001016115e5565b50506020998a01999094509290920191506001016115c1565b50909695505050505050565b6020815260006114bf60208301846115a3565b600082601f83011261167757600080fd5b813561168561141082611395565b8082825260208201915060208360051b8601019250858311156116a757600080fd5b602085015b8381101561109e5780358352602092830192016116ac565b600080604083850312156116d757600080fd5b82356116e281611337565b915060208301356001600160401b038111156116fd57600080fd5b61170985828601611666565b9150509250929050565b602080825282518282018190526000918401906040840190835b818110156117545783516001600160a01b031683526020938401939092019160010161172d565b509095945050505050565b60008083601f84011261177157600080fd5b5081356001600160401b0381111561178857600080fd5b6020830191508360208260051b85010111156117a357600080fd5b9250929050565b600080600080600080608087890312156117c357600080fd5b86356117ce81611337565b955060208701356117de816114c6565b945060408701356001600160401b038111156117f957600080fd5b8701601f8101891361180a57600080fd5b80356001600160401b0381111561182057600080fd5b89602082840101111561183257600080fd5b6020919091019450925060608701356001600160401b0381111561185557600080fd5b61186189828a0161175f565b979a9699509497509295939492505050565b600081518084526020840193506020830160005b828110156114a257815163ffffffff16865260209586019590910190600101611887565b6020815260008251608060208401526118c760a0840182611873565b90506020840151601f198483030160408501526118e48282611873565b9150506040840151601f198483030160608501526119028282611873565b6060860151858203601f190160808701528051808352919350602090810192508084019190600582901b85010160005b828110156106b957601f1986830301845261194e828651611873565b60209586019594909401939150600101611932565b60008060006060848603121561197857600080fd5b833561198381611337565b925060208401356001600160401b0381111561199e57600080fd5b6119aa86828701611666565b92505060408401356119bb816114c6565b809150509250925092565b602080825282518282018190526000918401906040840190835b818110156117545783518352602093840193909201916001016119e0565b600080600060608486031215611a1357600080fd5b8335611a1e81611337565b92506020840135915060408401356119bb816114c6565b828152604060208201526000611a4e60408301846115a3565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7e57600080fd5b5051919050565b600060208284031215611a9757600080fd5b81516114bf81611337565b600060208284031215611ab457600080fd5b81516001600160401b03811115611aca57600080fd5b8201601f81018413611adb57600080fd5b8051611ae961141082611395565b8082825260208201915060208360051b850101925086831115611b0b57600080fd5b6020840193505b82841015611b2d578351825260209384019390910190611b12565b9695505050505050565b600060208284031215611b4957600080fd5b81516001600160601b03811681146114bf57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b8d57600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215611bb957600080fd5b81516001600160401b03811115611bcf57600080fd5b8201601f81018413611be057600080fd5b8051611bee61141082611395565b8082825260208201915060208360051b850101925086831115611c1057600080fd5b6020840193505b82841015611b2d578351611c2a816114c6565b825260209384019390910190611c17565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c84604083018486611c3b565b95945050505050565b600060208284031215611c9f57600080fd5b81516001600160c01b03811681146114bf57600080fd5b600060208284031215611cc857600080fd5b81516114bf816114c6565b634e487b7160e01b600052601160045260246000fd5b600060018201611cfb57611cfb611cd3565b5060010190565b600060ff821660ff8103611d1857611d18611cd3565b60010192915050565b604081526000611d35604083018587611c3b565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a4e6040830184611470565b8181038181111561133157611331611cd3565b600061ffff821661ffff8103611d1857611d18611cd356fea264697066735822122033585ad22b02fc74fbd447d232f18fbc94c4d2d5f8667d94aaa1ee5226d7192a64736f6c634300081b0033","r":"0x94f4c7be187f2e53153091c11db45d49df6db8ca6388db48c4dcda50e831049e","s":"0x1fbf0c588ea0e493b1633276fbbe3b061ca673780975bf4e5d16a0cf86dee5c6","yParity":"0x1","hash":"0x1309bb9de7d6f8c0672f208661413e239f8fb42be97a17a4f7f96c0e6fe67a9b"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x35","gasLimit":"0x9368","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x1a320654ee68f747d801bcc60a6177ee938cc50783fbd59166c28f09f8d3bfbf","s":"0x3b7646ba70136a901182bac2c05db7b23db34a1559320bbbbc6d61d8d90836b5","yParity":"0x0","hash":"0x347311dd2eae16c262b7d5948ddae2c69deee29611e6e968d4aa42329bdb45bc"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x607eb9efb50db52a9d3d96804c25e1b98dc83a5e2438c1658ffebe9f7c9193fb","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xb1201c3d0d3bd997d37d8ed7000a53e2457a9107b88758e79c923e63d84681ea","transactionsRoot":"0xbf4b8ae64dc8ade25fe2f9bac39b247732a1911c6a8f037cdb6061229dae5a8d","receiptsRoot":"0xce2d4d353c880356c482491b31c44876645a43d9137b3b189db3fcac0e89dce5","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x14","gasLimit":"0x1c9c380","gasUsed":"0x64cb","timestamp":"0x66f70aab","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x660862f","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1f","gasLimit":"0x9368","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x51fdc1671286a48495d3af4d1b5fd6bad2e3d25fbf027be013a666f3b5e698bc","s":"0x3bfabc59a357de3c51aed3025d9924e12f8c7b589027430904c137a74f498ca6","yParity":"0x0","hash":"0x046411743d2c08a8f69f7117e4aed15eb84999f401e950cafac8436c9d2c04d8"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xc49f28e9848bce1cddad6c5fb3fc98de92b15ad335e6fefe8442f7c3aecc4225","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xcaaec99ca53a58bb76edbb6c6e9ec6adc50c3984830423afeabab48e185623a3","transactionsRoot":"0xc0b4cf1450e243e6254af56b427ae7c1567bbd82037f0ab1dd1746f09d9a9c12","receiptsRoot":"0x2cb3cf4af5df3449206b59a7fd38f80c7afa594321c3c9234d35bddb72e0dde6","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000800010000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000040004000000200000000000000000000000000000000000400000000000000000000000000000000000000000080000040000000000000000000000000000000000000000400000000000000000000000000000000000000000020000000000000000000040000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x5","gasLimit":"0x1c9c380","gasUsed":"0x112eba","timestamp":"0x66fa9fd0","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x2426a0e9","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x28","gasLimit":"0x158f9a","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a060405234801561001057600080fd5b5060405161139e38038061139e83398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b60805161123261016c60003960008181610142015281816102750152818161040f01526107d601526112326000f3fe608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f2a565b60405180910390f35b6100f46100ef366004610f9d565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fd0565b610404565b005b6100f4610138366004610feb565b610528565b6101647f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fd0565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9d565b6105f5565b6040516100d8919061102e565b61018f6101e1366004610f9d565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611066565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fd0565b6108d5565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102bb5760405162461bcd60e51b81526004016102b290611090565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611103565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611119565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112f565b6000610368836108f4565b905061037f898461037a60018561119a565b6109f1565b8085858151811061039257610392611119565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461044c5760405162461bcd60e51b81526004016102b290611090565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611119565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611103565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611119565b6020026020010181815250506000801b8282815181106106a2576106a2611119565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611119565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108135760405162461bcd60e51b81526004016102b290611090565b60005b818110156108cf57600083838381811061083257610832611119565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112f565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111b6565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b60018461119a565b63ffffffff168152602081019190915260400160009081205490036103b75760ff841660009081526002602052604081209061098860018461119a565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111d2565b81548110610abc57610abc611119565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111d2565b81548110610b0357610b03611119565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111d2565b81548110610b5d57610b5d611119565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111e5565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111d2565b81548110610cb457610cb4611119565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111e5565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff1661119a565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff811115610edf57600080fd5b8401601f81018613610ef057600080fd5b803567ffffffffffffffff811115610f0757600080fd5b866020828401011115610f1957600080fd5b939660209190910195509293505050565b602080825282518282018190526000918401906040840190835b81811015610f6857835163ffffffff16835260209384019390920191600101610f44565b509095945050505050565b803560ff81168114610f8457600080fd5b919050565b803563ffffffff81168114610f8457600080fd5b60008060408385031215610fb057600080fd5b610fb983610f73565b9150610fc760208401610f89565b90509250929050565b600060208284031215610fe257600080fd5b6103b782610f73565b60008060006060848603121561100057600080fd5b61100984610f73565b925061101760208501610f89565b915061102560408501610f89565b90509250925092565b602080825282518282018190526000918401906040840190835b81811015610f68578351835260209384019390920191600101611048565b6000806040838503121561107957600080fd5b61108283610f73565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff82811682821603908111156103fe576103fe611184565b63ffffffff81811683821601908111156103fe576103fe611184565b818103818111156103fe576103fe611184565b6000816111f4576111f4611184565b50600019019056fea2646970667358221220ba945981c3e38b03a37bd1abcfb723dba10920ef62bf03b26894aea4f4c71fdb64736f6c634300081b0033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c","r":"0x27b3305f568a27029919146794207452856c26ea7781b16b2ffd12312da21c01","s":"0x644d7b81e3f073015207c3791bf4152f574eae9501a8a3991e141ee1649747f2","yParity":"0x0","hash":"0xe4f35171dc99ca0fa3fca11e4d1089f12ec661eb6ba2b048c21afc265b73f8fe"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x29","gasLimit":"0xd175","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x99a88ec4000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3600000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49","r":"0xb69c6de2bc8add371c9f06e045593bf630b13a0e4e29e4434a9573761b6aac5","s":"0x185a8957fc2cd0932570b74a3867257f65a0b196c2bbe5056e10a7db3e96bd6a","yParity":"0x0","hash":"0xc55bc6448216d5fabf802cafda5597277ac40a0a4254523971756c67ff9fb2ee"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x4bb7d4d7274a71c12835a9908de46427fa0aeb6b6a094449480e3e1ca9f10fed","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x6880b9f2ba56739326fd916422582e691daa4968c1b52dddb845f2451b30891a","transactionsRoot":"0x31bc5e93aead970f271283deb6ca355074adc1010f3a4a1542428c755b966e62","receiptsRoot":"0x19e95c9ae96bcfaa35669da649163148d0399e12912dd92bd34428c6538b2f08","logsBloom":"0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x15","gasLimit":"0x1c9c380","gasUsed":"0x64c4","timestamp":"0x66f70aac","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x594cf47","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x20","gasLimit":"0x8b2e","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","value":"0x0","accessList":[],"input":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x729bcd296b95dc9fbbed8beeb842a62c4366afa92bbccac951f3dacff067c0fd","s":"0x79af5af4279f42a9f851e8e3eeb8ac3c64b30df48035e1584ae364c9e678585a","yParity":"0x0","hash":"0x0407695da91c821753dcf7e68b5284a95c603e466b110cce53db7254dd1f1278"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x24976c70f526fb1dc5b7a7714f20634961dae753235ef9aace058fd50bdb8c95","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x2f0dba769c5cf2ba35987b69c35b96bb9abcdc9a8b36cf2e54dfc7ceaabb5319","transactionsRoot":"0xfaca5f3769310b547f5712ea757ecd19240b23e8aadedb2b6b6c15772e95a807","receiptsRoot":"0x199c805dd91caedcdc2b01da2d522ae1f1883eced41a5f93829c7dad8e6f4f49","logsBloom":"0x00002000000000000000000000000008400000000000000000000000020000000000000000000000000000000000000080000000010000000000000000000040004000000000000000000000000002000000000000000000004000000000000000000000000000000000040000000000000000000000000000000100000000000100000000000000100000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000020200000000000000002440000000000000000000000000000000000000000100000000000080000020000000000000000000000000000000000000000","difficulty":"0x0","number":"0x6","gasLimit":"0x1c9c380","gasUsed":"0x98852f","timestamp":"0x66fa9fd1","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1ff8a51c","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2a","gasLimit":"0x3e1047","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60c060405234801561001057600080fd5b5060405161389c38038061389c83398101604081905261002f9161005e565b6001600160a01b0391821660a05216608052610098565b6001600160a01b038116811461005b57600080fd5b50565b6000806040838503121561007157600080fd5b825161007c81610046565b602084015190925061008d81610046565b809150509250929050565b60805160a0516137a06100fc6000396000818161037a015281816106340152818161096701528181610ccf015281816110f0015281816116d0015281816117d2015281816118eb0152611cad0152600081816105290152611e6e01526137a06000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d89565b610959565b604051610217929190612e29565b6102b56102b0366004612e4e565b610c15565b6040516102179190612e7a565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4e565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4e565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f85565b610ccd565b61035d610358366004612d89565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc366004613046565b611240565b6040516102179190613098565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130d6565b61152d565b6040516102179190613109565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461315a565b6116ce565b61027f610495366004613184565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d136600461324f565b6118e9565b6102546104e436600461329c565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132d9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b610254610559366004613315565b611ac3565b61041461056c366004612e4e565b611b58565b61025461057f3660046132d9565b611c41565b61027f610592366004613357565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133b4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b49190613405565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613422565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133b4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561349e565b905060200201602081019061084a91906134b4565b8289898481811061085d5761085d61349e565b90506020020135815481106108745761087461349e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61349e565b90506020020135815481106108f4576108f461349e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61349e565b905060200201602081019061093091906134b4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109a45760405162461bcd60e51b8152600401610611906134cf565b6000836001600160401b038111156109be576109be612ef4565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612ef4565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61349e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361349e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61349e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f9190613405565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613422565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133b4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61349e565b602002602001015181548110610ea357610ea361349e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161349e565b602002602001015181548110610f1957610f1961349e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613557565b81548110610f6957610f6961349e565b9060005260206000200183878381518110610f8657610f8661349e565b602002602001015181548110610f9e57610f9e61349e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161356a565b6000828152602081208201600019908101919091550190558154829061101990600190613557565b815481106110295761102961349e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61349e565b6020026020010151815481106110725761107261349e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061356a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461112d5760405162461bcd60e51b8152600401610611906134cf565b6000805b8381101561123657600085858381811061114d5761114d61349e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612ef4565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761349e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61349e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613557565b6114699190613557565b815481106114795761147961349e565b60009182526020909120015463ffffffff16116114d757600161149c8284613557565b6114a69190613557565b8585815181106114b8576114b861349e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61349e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117509190613405565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613422565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133b4565b6117c283836123f7565b505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461180f5760405162461bcd60e51b8152600401610611906134cf565b60005b818110156118e357600083838381811061182e5761182e61349e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b9190613405565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613422565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133b4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613557565b81548110611a8c57611a8c61349e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613557565b81548110611bec57611bec61349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61349e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611cea5760405162461bcd60e51b8152600401610611906134cf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692639004134792611ea1928c9201613580565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135e2565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761349e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561349e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61349e565b6020026020010151611fae919061366d565b611fb89190613684565b611fc290866136a6565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613557565b815481106120fe576120fe61349e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613557565b815481106122b4576122b461349e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374b83398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136c5565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374b83398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136c5565b811015612646578482815181106125895761258961349e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861349e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61349e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661349e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61349e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261349e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61349e565b60200260200101516000015186848151811061285d5761285d61349e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613557565b81548110612a6c57612a6c61349e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613557565b925050506114ee565b80612aa1816136d8565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136ef565b600080821215612baa57612b998261370f565b612ba3908461372b565b9050610cae565b612ba382846136a6565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b03811115612d0057600080fd5b612d0c88828901612c80565b90955093505060408601356001600160401b03811115612d2b57600080fd5b612d3788828901612c80565b969995985093965092949392505050565b60008083601f840112612d5a57600080fd5b5081356001600160401b03811115612d7157600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9f57600080fd5b8435612daa81612c31565b93506020850135925060408501356001600160401b03811115612dcc57600080fd5b612dd887828801612d48565b95989497509550505050565b600081518084526020840193506020830160005b82811015612e1f5781516001600160601b0316865260209586019590910190600101612df8565b5093949350505050565b604081526000612e3c6040830185612de4565b82810360208401526123ee8185612de4565b60008060408385031215612e6157600080fd5b82359150612e7160208401612bb4565b90509250929050565b602080825282518282018190526000918401906040840190835b81811015612ee957612ed383855163ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b6020939093019260609290920191600101612e94565b509095945050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2c57612f2c612ef4565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5a57612f5a612ef4565b604052919050565b60006001600160401b03821115612f7b57612f7b612ef4565b5060051b60200190565b60008060408385031215612f9857600080fd5b612fa183612bb4565b915060208301356001600160401b03811115612fbc57600080fd5b8301601f81018513612fcd57600080fd5b8035612fe0612fdb82612f62565b612f32565b8082825260208201915060208360051b85010192508783111561300257600080fd5b6020840193505b82841015613024578335825260209384019390910190613009565b809450505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305b57600080fd5b61306484613032565b925060208401356001600160401b0381111561307f57600080fd5b61308b86828701612d48565b9497909650939450505050565b602080825282518282018190526000918401906040840190835b81811015612ee957835163ffffffff168352602093840193909201916001016130b2565b6000806000606084860312156130eb57600080fd5b6130f484612bb4565b95602085013595506040909401359392505050565b60608101610cae828463ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561316d57600080fd5b61317683612bb4565b9150612e7160208401613143565b60008060006040848603121561319957600080fd5b8335925060208401356001600160401b0381111561307f57600080fd5b600082601f8301126131c757600080fd5b81356131d5612fdb82612f62565b8082825260208201915060208360061b8601019250858311156131f757600080fd5b602085015b83811015611236576040818803121561321457600080fd5b61321c612f0a565b813561322781612c31565b815261323560208301613143565b6020820152808452506020830192506040810190506131fc565b6000806040838503121561326257600080fd5b61326b83612bb4565b915060208301356001600160401b0381111561328657600080fd5b613292858286016131b6565b9150509250929050565b6000806000606084860312156132b157600080fd5b6132ba84612bb4565b92506132c860208501613032565b929592945050506040919091013590565b6000806000606084860312156132ee57600080fd5b833592506132fe60208501612bb4565b915061330c60408501613032565b90509250925092565b6000806000806080858703121561332b57600080fd5b61333485612bb4565b935061334260208601613032565b93969395505050506040820135916060013590565b60008060006060848603121561336c57600080fd5b61337584612bb4565b925061338360208501613143565b915060408401356001600160401b0381111561339e57600080fd5b6133aa868287016131b6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561341757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134c657600080fd5b6114ee82613143565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613541565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0383168152604060208083018290528354918301829052600084815290812090916060840190835b818110156135d65783546001600160a01b03168352600193840193602090930192016135af565b50909695505050505050565b6000602082840312156135f457600080fd5b81516001600160401b0381111561360a57600080fd5b8201601f8101841361361b57600080fd5b8051613629612fdb82612f62565b8082825260208201915060208360051b85010192508683111561364b57600080fd5b6020840193505b82841015612276578351825260209384019390910190613652565b8082028115828204841417610cae57610cae613541565b6000826136a157634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b038181168382160190811115610cae57610cae613541565b80820180821115610cae57610cae613541565b6000816136e7576136e7613541565b506000190190565b818103600083128015838313168383128216171561062b5761062b613541565b6000600160ff1b820161372457613724613541565b5060000390565b6001600160601b038281168282160390811115610cae57610cae61354156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a264697066735822122066c84d910ac323d5558756abc711b3f82c77555706bfedf06be866ca6602f4ca64736f6c634300081b0033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x8b5cde1d4dcfb3154aded01caa0bcbebecb1d07f333bc66c6da55bbb22b0669e","s":"0x707a6bf2dccdef399499b8580903b27626936e9593c546d386ff6d8a19d1dc13","yParity":"0x0","hash":"0xa0c3c8085cc021b3691aa6f77b08b8d2ffb8f368c2c79b759908cc6fa670d162"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2b","gasLimit":"0xd175","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x99a88ec400000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377800000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf","r":"0x62b02a6b212c7957efcde6a19e6ecd37b713a7dcc24e890b4664c942edffc149","s":"0x134dc444a9a13b30777a5c79278bcc5d6a6ccf7ecbaa9464d8f36297a2e6e36f","yParity":"0x1","hash":"0x6ea78c3414677766a62f4c541cfb745fdfe0841a3497ea85a3e4ce886192fa5a"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2c","gasLimit":"0x239d94","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a060405234801561001057600080fd5b5060405161207538038061207583398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b608051611f026101736000396000818161030f01528181610466015281816105bf015281816109c501526110250152611f026000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a4c565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a65565b6102a261029d366004611a7c565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa6565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61034461033f366004611a7c565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611aee565b6109b8565b6103f26103ed366004611b4b565b610e0b565b6040516101529190611bc4565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a4c565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104ac5760405162461bcd60e51b81526004016104a390611c0d565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105fc5760405162461bcd60e51b81526004016104a390611c0d565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c81565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a025760405162461bcd60e51b81526004016104a390611c0d565b6000610a30610a1936869003860160408701611cfb565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611ead83398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611ead83398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611ead83398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2e565b6040516020818303038152906040528051906020012060001c610c419190611d70565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cfb565b90611307565b610c7436899003890189611cfb565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cfb565b610cd6368a90038a0160808b01611dd7565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611ead83398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e18565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce5565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce5565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e58565b81548110610f9a57610f9a611ce5565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e58565b858581518110610fd557610fd5611ce5565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e6b565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110625760405162461bcd60e51b81526004016104a390611c0d565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce5565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e58565b8154811061121657611216611ce5565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e82565b905084826002811061154957611549611ce5565b6020020151518361155b836000611e99565b600c811061156b5761156b611ce5565b602002015284826002811061158257611582611ce5565b602002015160200151838260016115999190611e99565b600c81106115a9576115a9611ce5565b60200201528382600281106115c0576115c0611ce5565b60200201515151836115d3836002611e99565b600c81106115e3576115e3611ce5565b60200201528382600281106115fa576115fa611ce5565b6020020151516001602002015183611613836003611e99565b600c811061162357611623611ce5565b602002015283826002811061163a5761163a611ce5565b60200201516020015160006002811061165557611655611ce5565b602002015183611666836004611e99565b600c811061167657611676611ce5565b602002015283826002811061168d5761168d611ce5565b6020020151602001516001600281106116a8576116a8611ce5565b6020020151836116b9836005611e99565b600c81106116c9576116c9611ce5565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d70565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e58565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b9150602083013567ffffffffffffffff8111156119d957600080fd5b8301601f810185136119ea57600080fd5b803567ffffffffffffffff811115611a0457611a04611931565b611a17601f8201601f1916602001611970565b818152866020838501011115611a2c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208284031215611a5e57600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8f57600080fd5b611a9883611905565b946020939093013593505050565b600080600060608486031215611abb57600080fd5b611ac484611905565b9250602084013563ffffffff81168114611add57600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0557600080fd5b611b0e856118cc565b9350610100601f1982011215611b2357600080fd5b602085019250604061011f1982011215611b3c57600080fd5b50610120840190509250925092565b600080600060408486031215611b6057600080fd5b833567ffffffffffffffff811115611b7757600080fd5b8401601f81018613611b8857600080fd5b803567ffffffffffffffff811115611b9f57600080fd5b866020828401011115611bb157600080fd5b6020918201979096509401359392505050565b602080825282518282018190526000918401906040840190835b81811015611c0257835163ffffffff16835260209384019390920191600101611bde565b509095945050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b0384168152826020820152606060408201526000825180606084015260005b81811015611cc35760208186018101516080868401015201611ca6565b506000608082850101526080601f19601f830116840101915050949350505050565b634e487b7160e01b600052603260045260246000fd5b60006040828403128015611d0e57600080fd5b50611d17611947565b823581526020928301359281019290925250919050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8d57634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611da357600080fd5b611dab611947565b806040840185811115611dbd57600080fd5b845b81811015611c02578035845260209384019301611dbf565b60006080828403128015611dea57600080fd5b50611df3611947565b611dfd8484611d92565b8152611e0c8460408501611d92565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e42565b600081611e7a57611e7a611e42565b506000190190565b80820281158282048414176106ff576106ff611e42565b808201808211156106ff576106ff611e4256fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a2646970667358221220e98098f8396e49039e387b6fa81db3dc69781677ba6e4071b0b6a30889295d3664736f6c634300081b0033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c","r":"0x9bd74febe463e737d8327e5e90dd06d12c3e6d258fd661762ec05d7650b7d43d","s":"0x28d857a13b68cf68f8cf395180105b6773aca6f3d5a0f1cbcb67edd0b6151be2","yParity":"0x1","hash":"0xac1073a608bdd692f97c34a9e3a8540386b02d3b6b8c3e2623902c37b6e2d9f2"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2d","gasLimit":"0xd175","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x99a88ec4000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e0000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf","r":"0x1e4718a37222b4afb812e0cb601bc8958641c9ba80f1369770f2bc5b63e4f0a7","s":"0x7ba51e2bfb4ccea42f5e64e7f59b10623112bbe13c1dceaef51e33d3fedb575a","yParity":"0x1","hash":"0xea8d6e33dc169f638f10dce03cffccc4d4e8594d0211415af99ea7330abe0032"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2e","gasLimit":"0x62ffc6","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6101c060405234801561001157600080fd5b50604051615c76380380615c7683398101604081905261003091610248565b604080518082018252601681527f4156535265676973747279436f6f7264696e61746f720000000000000000000060208083019182528351808501909452600684526576302e302e3160d01b908401528151902060e08190527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a996101008190524660a05287938793879387939192917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61012f8184846040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6080523060c05261012052505050506001600160a01b039384166101405291831661018052821661016052166101a052610167610170565b505050506102a7565b600054610100900460ff16156101dc5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561022e576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461024557600080fd5b50565b6000806000806080858703121561025e57600080fd5b845161026981610230565b602086015190945061027a81610230565b604086015190935061028b81610230565b606086015190925061029c81610230565b939692955090935050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516158c86103ae6000396000818161074e0152818161113101528181611f0c01528181612b4a01528181613257015261367101526000818161069301528181611e970152818161233601528181612aca015281816131ae0152818161339f01526135f001526000818161065901528181610f0401528181611ed501528181612a4c01528181612c3201528181612cac0152818161312e01526136ed015260008181610571015281816129a20152613076015260006138f4015260006139430152600061391e01526000613877015260006138a1015260006138cb01526158c86000f3fe608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e6103393660046143e3565b610940565b005b61036061034e366004614424565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461444f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144ac565b610b5e565b61033e6103ea3660046145b4565b610b8a565b61033e6103fd366004614424565b610c34565b61033e6104103660046144ac565b610c41565b6103606104233660046144ac565b609f6020526000908152604090205481565b6103606104433660046144ac565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614424565b610cf4565b61049461047f366004614424565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614604565b610e31565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614637565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144ac565b610ec2565b6103b1610541366004614424565b610eeb565b61033e6105543660046144ac565b610f77565b61033e6105673660046144ac565b610f88565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6104946105a13660046144ac565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144ac565b610f99565b60405161036a9190614652565b61033e6105ed3660046146aa565b611018565b6106056106003660046144ac565b6113ee565b60405161036a9190614751565b61033e611462565b610494610628366004614637565b6001805460ff9092161b9081161490565b61033e6106473660046147d6565b61152e565b600154610360565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6103b1610689366004614424565b611588565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b61033e6106c336600461480a565b6115b2565b61033e611707565b6103606106de3660046148c1565b61171b565b6103866106f1366004614424565b611765565b6000546103b1906201000090046001600160a01b031681565b6103b1611770565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614a61565b611789565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614b6e565b611aa2565b61036060a05481565b6107c66107c1366004614c1e565b611c07565b60405161036a9190614cc8565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614d11565b611cb6565b609c54610360565b61033e610823366004614dff565b611d1c565b61033e610836366004614fb0565b611d2f565b6108aa610849366004614637565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144ac565b611fef565b61033e6108ff366004614424565b612065565b6109336109123660046144ac565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a919061508e565b6001546002906004908116036109715760405162461bcd60e51b81526004016109689061509c565b60405180910390fd5b60005b82811015610a48576000848483818110610990576109906150d3565b90506020020160208101906109a591906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614719565b6002811115610a0157610a01614719565b90525080519091506000610a14826121c1565b90506000610a2a826001600160c01b031661222c565b9050610a378585836122f8565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a716150d3565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b666123e5565b6001600160a01b0316600090815260c860205260409020805460ff19166001179055565b60013360009081526099602052604090206001015460ff166002811115610bb357610bb3614719565b14610be85760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c2990849061512f565b60405180910390a250565b610c3c6123e5565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb89190615142565b6001600160a01b0316336001600160a01b031614610ce85760405162461bcd60e51b81526004016109689061515f565b610cf181612444565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6591906151a9565b610d815760405162461bcd60e51b8152600401610968906151cb565b60015481811614610dfa5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c29565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e6e57610e6e6150d3565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610eca6123e5565b6001600160a01b0316600090815260c860205260409020805460ff19169055565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610f53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190615142565b610f7f6123e5565b610cf181612549565b610f906123e5565b610cf1816125b2565b6040805180820190915260008082526020820152610ebc6110137f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de684604051602001610ff89291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061261b565b612669565b6001546002906004908116036110405760405162461bcd60e51b81526004016109689061509c565b600061108884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90508483146110c25760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b838110156113e55760008585838181106110e1576110e16150d3565b919091013560f81c91503690506000898985818110611102576111026150d3565b90506020028101906111149190615213565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f341092290602401602060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a4919061525c565b63ffffffff1681146111e35760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b8281101561138a576000848483818110611203576112036150d3565b905060200201602081019061121891906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561126357611263614719565b600281111561127457611274614719565b90525080519091506000611287826121c1565b905060016001600160c01b03821660ff8b161c8116146112d45760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161131f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b5061137d83838f8f8d908e6001611336919061528f565b92611343939291906152a2565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122f892505050565b50909250506001016111e7565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a2505050508060010190506110c5565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561144857611448614719565b600281111561145957611459614719565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d391906151a9565b6114ef5760405162461bcd60e51b8152600401610968906151cb565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6115366123e5565b609654829060ff908116908216106115795760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115838383612789565b505050565b609c818154811061159857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146115f95760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116669187908790819084018382808284376000920191909152505060965460ff1691506126f89050565b90506000611673836121c1565b905060018085015460ff16600281111561168f5761168f614719565b1480156116a457506001600160c01b03821615155b80156116c257506116c26001600160c01b0383811690831681161490565b156113e5576113e58787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b61170f6123e5565b6117196000612bbe565b565b600061175b7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a8787878787604051602001610ff8969594939291906152cc565b9695505050505050565b6000610ebc826121c1565b60006117846064546001600160a01b031690565b905090565b60018054600091908116036117b05760405162461bcd60e51b81526004016109689061509c565b33600090815260c8602052604090205460ff166118015760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118395760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118453388612c10565b90506118a533828888808060200260200160405190810160405280939291908181526020016000905b8282101561189a5761188b60408302860136819003810190615353565b8152602001906001019061186e565b505050505087612d45565b60006118ec33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b90506000609760008e8e6000818110611907576119076150d3565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b909104909416928101929092528451805192945091611972576119726150d3565b602002602001015163ffffffff161115611a9357611a178d8d600081811061199c5761199c6150d3565b9050013560f81c60f81b60f81c83604001516000815181106119c0576119c06150d3565b60200260200101513385602001516000815181106119e0576119e06150d3565b60200260200101518c8c60008181106119fb576119fb6150d3565b905060400201803603810190611a119190615353565b866132e5565b611a9388886000818110611a2d57611a2d6150d3565b9050604002016020016020810190611a4591906144ac565b8e8e600090600192611a59939291906152a2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b50505050505050505050505050565b6001805460009190811603611ac95760405162461bcd60e51b81526004016109689061509c565b33600090815260c8602052604090205460ff16611b1a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b263385612c10565b90506000611b6f33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611bb757611bb76150d3565b602002602001015163ffffffff161115611bfc5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c2457611c246144c9565b604051908082528060200260200182016040528015611c4d578160200160208202803683370190505b50905060005b8351811015611cae57611c7f85858381518110611c7257611c726150d3565b60200260200101516134b4565b828281518110611c9157611c916150d3565b63ffffffff90921660209283029190910190910152600101611c53565b509392505050565b60018054600290811603611cdc5760405162461bcd60e51b81526004016109689061509c565b6115833384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b611d246123e5565b61158383838361356d565b600054610100900460ff1615808015611d4f5750600054600160ff909116105b80611d695750303b158015611d69575060005460ff166001145b611dcc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611def576000805461ff0019166101001790555b82518451148015611e01575081518351145b611e325760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e3b89612bbe565b611e45868661374f565b611e4e88612549565b611e57876125b2565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166001600160a01b03199283161790925585548085018755850180547f0000000000000000000000000000000000000000000000000000000000000000841690831617905585549384019095559190920180547f000000000000000000000000000000000000000000000000000000000000000090921691909316179091555b8451811015611f9e57611f96858281518110611f5557611f556150d3565b6020026020010151858381518110611f6f57611f6f6150d3565b6020026020010151858481518110611f8957611f896150d3565b602002602001015161356d565b600101611f37565b508015611bfc576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b611ff76123e5565b6001600160a01b03811661205c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610cf181612bbe565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dc9190615142565b6001600160a01b0316336001600160a01b03161461210c5760405162461bcd60e51b81526004016109689061515f565b60015419811960015419161461218a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c29565b6000818152609860205260408120548082036121e05750600092915050565b60008381526098602052604090206121f960018361536f565b81548110612209576122096150d3565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061223a8461383f565b61ffff166001600160401b03811115612255576122556144c9565b6040519080825280601f01601f19166020018201604052801561227f576020820181803683370190505b5090506000805b825182108015612297575061010081105b156122ee576001811b9350858416156122de578060f81b8383815181106122c0576122c06150d3565b60200101906001600160f81b031916908160001a9053508160010191505b6122e781615382565b9050612286565b5090949350505050565b60018260200151600281111561231057612310614719565b1461231a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366acfefe9061236f9088908690889060040161539b565b6020604051808303816000875af115801561238e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b291906153cb565b90506001600160c01b038116156123de576123de856123d9836001600160c01b031661222c565b612836565b5050505050565b336123ee611770565b6001600160a01b0316146117195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166124d25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ebc61262861386a565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806126996000805160206158738339815191528661540a565b90505b6126a581613991565b909350915060008051602061587383398151915282830983036126de576040805180820190915290815260208101919091529392505050565b60008051602061587383398151915260018208905061269c565b60008061270484613a13565b9050808360ff166001901b116127825760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff16600281111561286a5761286a614719565b1461289f5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b6096546000906128b390859060ff166126f8565b905060006128c0836121c1565b90506001600160c01b0382166129015760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129186001600160c01b0383811690831681161490565b61294d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129668482613b9b565b6001600160c01b038116612a355760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401600060405180830381600087803b1580156129e657600080fd5b505af11580156129fa573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe590612a83908a908a9060040161541e565b600060405180830381600087803b158015612a9d57600080fd5b505af1158015612ab1573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612b039087908a90600401615442565b600060405180830381600087803b158015612b1d57600080fd5b505af1158015612b31573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612b839087908a90600401615442565b600060405180830381600087803b158015612b9d57600080fd5b505af1158015612bb1573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906313542a4e90602401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f919061545b565b90506000819003610ebc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf79ce588484612ce487610f99565b6040518463ffffffff1660e01b8152600401612d0293929190615474565b6020604051808303816000875af1158015612d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612782919061545b565b6020808201516000908152609a909152604090205460ff1615612d935760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612dcf5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e1a918891889188919061171b565b8351613d5c565b612e4560405180606001604052806060815260200160608152602001606081525090565b6000612e8d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90506000612e9a886121c1565b90506001600160c01b038216612edb5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f1d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612f55919061528f565b10612f8a5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612f948982613b9b565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051612fc4919061512f565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff166002811115612ffe57612ffe614719565b14613117576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff19169083600281111561305957613059614719565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150639926ee7d906130ae908d9089906004016154e4565b600060405180830381600087803b1580156130c857600080fd5b505af11580156130dc573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb2795290613167908d908c908c90600401615558565b600060405180830381600087803b15801561318157600080fd5b505af1158015613195573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250632550477791506131eb908d908d908d908d9060040161557d565b6000604051808303816000875af115801561320a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613232919081019061560c565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d9061328f908c908c908c90600401615673565b6000604051808303816000875af11580156132ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132d6919081019061568d565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361333e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff161461337d5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa1580156133ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134129190615721565b905061341e8185613f16565b6001600160601b0316866001600160601b0316116134645760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b61346e8885613f3a565b6001600160601b0316816001600160601b031610611bfc5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561353c5760016134d9828461536f565b6134e3919061536f565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613516576135166150d3565b60009182526020909120015463ffffffff1611613534575050610ebc565b6001016134c5565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135ac5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b6135b781600161573e565b6096805460ff191660ff92909216919091179055806135d68186612789565b60405160016296b58960e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ff694a779061362990849088908890600401615757565b600060405180830381600087803b15801561364357600080fd5b505af1158015613657573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b1580156136bf57600080fd5b505af11580156136d3573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561373b57600080fd5b505af1158015611bfc573d6000803e3d6000fd5b6000546201000090046001600160a01b031615801561377657506001600160a01b03821615155b6137f85760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261383b82612444565b5050565b6000805b8215610ebc5761385460018461536f565b9092169180613862816157d7565b915050613843565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156138c357507f000000000000000000000000000000000000000000000000000000000000000046145b156138ed57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615873833981519152600360008051602061587383398151915286600080516020615873833981519152888909090890506000613a07827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615873833981519152613f54565b91959194509092505050565b600061010082511115613a9c5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613aad57506000919050565b60008083600081518110613ac357613ac36150d3565b0160200151600160f89190911c81901b92505b8451811015613b9257848181518110613af157613af16150d3565b0160200151600160f89190911c1b9150828211613b865760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613ad6565b50909392505050565b60008281526098602052604081205490819003613c43576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613c5c60018461536f565b81548110613c6c57613c6c6150d3565b6000918252602090912001805490915063ffffffff438116911603613cae5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613e7657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613d9c9086908690600401615442565b602060405180830381865afa158015613db9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ddd91906157f8565b6001600160e01b031916146115835760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613e8a8383613ffd565b6001600160a01b0316146115835760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f309061ffff1685615822565b6127829190615844565b604081015160009061271090613f309061ffff1685615822565b600080613f5f614363565b613f67614381565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fa457fe5b5082613ff25760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061400c8585614019565b91509150611cae81614087565b600080825160410361404f5760208301516040840151606085015160001a6140438782858561423d565b94509450505050614080565b8251604003614078576020830151604084015161406d86838361432a565b935093505050614080565b506000905060025b9250929050565b600081600481111561409b5761409b614719565b036140a35750565b60018160048111156140b7576140b7614719565b036141045760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561411857614118614719565b036141655760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b600381600481111561417957614179614719565b036141d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b60048160048111156141e5576141e5614719565b03610cf15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142745750600090506003614321565b8460ff16601b1415801561428c57508460ff16601c14155b1561429d5750600090506004614321565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156142f1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661431a57600060019250925050614321565b9150600090505b94509492505050565b6000806001600160ff1b0383168161434760ff86901c601b61528f565b90506143558782888561423d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f8401126143b157600080fd5b5081356001600160401b038111156143c857600080fd5b6020830191508360208260051b850101111561408057600080fd5b600080602083850312156143f657600080fd5b82356001600160401b0381111561440c57600080fd5b6144188582860161439f565b90969095509350505050565b60006020828403121561443657600080fd5b5035919050565b63ffffffff81168114610cf157600080fd5b60008060006060848603121561446457600080fd5b8335925060208401356144768161443d565b929592945050506040919091013590565b6001600160a01b0381168114610cf157600080fd5b80356144a781614487565b919050565b6000602082840312156144be57600080fd5b813561278281614487565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614501576145016144c9565b60405290565b604080519081016001600160401b0381118282101715614501576145016144c9565b604051601f8201601f191681016001600160401b0381118282101715614551576145516144c9565b604052919050565b6000806001600160401b03841115614573576145736144c9565b50601f8301601f191660200161458881614529565b91505082815283838301111561459d57600080fd5b828260208301376000602084830101529392505050565b6000602082840312156145c657600080fd5b81356001600160401b038111156145dc57600080fd5b8201601f810184136145ed57600080fd5b6145fc84823560208401614559565b949350505050565b6000806040838503121561461757600080fd5b50508035926020909101359150565b803560ff811681146144a757600080fd5b60006020828403121561464957600080fd5b61278282614626565b815181526020808301519082015260408101610ebc565b60008083601f84011261467b57600080fd5b5081356001600160401b0381111561469257600080fd5b60208301915083602082850101111561408057600080fd5b600080600080604085870312156146c057600080fd5b84356001600160401b038111156146d657600080fd5b6146e28782880161439f565b90955093505060208501356001600160401b0381111561470157600080fd5b61470d87828801614669565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061474d57634e487b7160e01b600052602160045260246000fd5b9052565b81518152602080830151604083019161476c9084018261472f565b5092915050565b803561ffff811681146144a757600080fd5b60006060828403121561479757600080fd5b61479f6144df565b905081356147ac8161443d565b81526147ba60208301614773565b60208201526147cb60408301614773565b604082015292915050565b600080608083850312156147e957600080fd5b6147f283614626565b91506148018460208501614785565b90509250929050565b60008060006040848603121561481f57600080fd5b833561482a81614487565b925060208401356001600160401b0381111561484557600080fd5b61485186828701614669565b9497909650939450505050565b60006001600160401b03821115614877576148776144c9565b5060051b60200190565b60006040828403121561489357600080fd5b61489b614507565b90506148a682614626565b815260208201356148b681614487565b602082015292915050565b600080600080600060a086880312156148d957600080fd5b85356148e481614487565b94506020860135935060408601356001600160401b0381111561490657600080fd5b8601601f8101881361491757600080fd5b803561492a6149258261485e565b614529565b8082825260208201915060208360061b85010192508a83111561494c57600080fd5b6020840193505b82841015614978576149658b85614881565b8252602082019150604084019350614953565b979a9699509697606081013597506080013595945050505050565b600061010082840312156149a657600080fd5b50919050565b60008083601f8401126149be57600080fd5b5081356001600160401b038111156149d557600080fd5b6020830191508360208260061b850101111561408057600080fd5b600060608284031215614a0257600080fd5b614a0a6144df565b905081356001600160401b03811115614a2257600080fd5b8201601f81018413614a3357600080fd5b614a4284823560208401614559565b8252506020828101359082015260409182013591810191909152919050565b60008060008060008060008060006101a08a8c031215614a8057600080fd5b89356001600160401b03811115614a9657600080fd5b614aa28c828d01614669565b909a5098505060208a01356001600160401b03811115614ac157600080fd5b614acd8c828d01614669565b9098509650614ae190508b60408c01614993565b94506101408a01356001600160401b03811115614afd57600080fd5b614b098c828d016149ac565b9095509350506101608a01356001600160401b03811115614b2957600080fd5b614b358c828d016149f0565b9250506101808a01356001600160401b03811115614b5257600080fd5b614b5e8c828d016149f0565b9150509295985092959850929598565b6000806000806000806101608789031215614b8857600080fd5b86356001600160401b03811115614b9e57600080fd5b614baa89828a01614669565b90975095505060208701356001600160401b03811115614bc957600080fd5b614bd589828a01614669565b9095509350614be990508860408901614993565b91506101408701356001600160401b03811115614c0557600080fd5b614c1189828a016149f0565b9150509295509295509295565b60008060408385031215614c3157600080fd5b8235614c3c8161443d565b915060208301356001600160401b03811115614c5757600080fd5b8301601f81018513614c6857600080fd5b8035614c766149258261485e565b8082825260208201915060208360051b850101925087831115614c9857600080fd5b6020840193505b82841015614cba578335825260209384019390910190614c9f565b809450505050509250929050565b602080825282518282018190526000918401906040840190835b81811015614d0657835163ffffffff16835260209384019390920191600101614ce2565b509095945050505050565b60008060208385031215614d2457600080fd5b82356001600160401b03811115614d3a57600080fd5b61441885828601614669565b6001600160601b0381168114610cf157600080fd5b600082601f830112614d6c57600080fd5b8135614d7a6149258261485e565b8082825260208201915060208360061b860101925085831115614d9c57600080fd5b602085015b83811015614df55760408188031215614db957600080fd5b614dc1614507565b8135614dcc81614487565b81526020820135614ddc81614d46565b6020828101919091529084529290920191604001614da1565b5095945050505050565b600080600060a08486031215614e1457600080fd5b614e1e8585614785565b92506060840135614e2e81614d46565b915060808401356001600160401b03811115614e4957600080fd5b614e5586828701614d5b565b9150509250925092565b600082601f830112614e7057600080fd5b8135614e7e6149258261485e565b80828252602082019150602060608402860101925085831115614ea057600080fd5b602085015b83811015614df557614eb78782614785565b8352602090920191606001614ea5565b600082601f830112614ed857600080fd5b8135614ee66149258261485e565b8082825260208201915060208360051b860101925085831115614f0857600080fd5b602085015b83811015614df5578035614f2081614d46565b835260209283019201614f0d565b600082601f830112614f3f57600080fd5b8135614f4d6149258261485e565b8082825260208201915060208360051b860101925085831115614f6f57600080fd5b602085015b83811015614df55780356001600160401b03811115614f9257600080fd5b614fa1886020838a0101614d5b565b84525060209283019201614f74565b600080600080600080600080610100898b031215614fcd57600080fd5b614fd68961449c565b9750614fe460208a0161449c565b9650614ff260408a0161449c565b955061500060608a0161449c565b94506080890135935060a08901356001600160401b0381111561502257600080fd5b61502e8b828c01614e5f565b93505060c08901356001600160401b0381111561504a57600080fd5b6150568b828c01614ec7565b92505060e08901356001600160401b0381111561507257600080fd5b61507e8b828c01614f2e565b9150509295985092959890939650565b60208101610ebc828461472f565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b8181101561510f576020818501810151868301820152016150f3565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061278260208301846150e9565b60006020828403121561515457600080fd5b815161278281614487565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156151bb57600080fd5b8151801515811461278257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261522a57600080fd5b8301803591506001600160401b0382111561524457600080fd5b6020019150600581901b360382131561408057600080fd5b60006020828403121561526e57600080fd5b81516127828161443d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ebc57610ebc615279565b600080858511156152b257600080fd5b838611156152bf57600080fd5b5050820193919092039150565b600060c0820188835260018060a01b038816602084015286604084015260c0606084015280865180835260e08501915060208801925060005b8181101561533b578351805160ff1684526020908101516001600160a01b03168185015290930192604090920191600101615305565b50506080840195909552505060a00152949350505050565b60006040828403121561536557600080fd5b6127828383614881565b81810381811115610ebc57610ebc615279565b60006001820161539457615394615279565b5060010190565b60018060a01b03841681528260208201526060604082015260006153c260608301846150e9565b95945050505050565b6000602082840312156153dd57600080fd5b81516001600160c01b038116811461278257600080fd5b634e487b7160e01b600052601260045260246000fd5b600082615419576154196153f4565b500690565b6001600160a01b03831681526040602082018190526000906145fc908301846150e9565b8281526040602082015260006145fc60408301846150e9565b60006020828403121561546d57600080fd5b5051919050565b6001600160a01b0384168152610160810161549c602083018580358252602090810135910152565b6154b6606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e0840137825161012083015260208301516101408301526145fc565b60018060a01b038316815260406020820152600082516060604084015261550e60a08401826150e9565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906153c2908301848661552f565b60018060a01b038516815283602082015260606040820152600061175b60608301848661552f565b600082601f8301126155b657600080fd5b81516155c46149258261485e565b8082825260208201915060208360051b8601019250858311156155e657600080fd5b602085015b83811015614df55780516155fe81614d46565b8352602092830192016155eb565b6000806040838503121561561f57600080fd5b82516001600160401b0381111561563557600080fd5b615641858286016155a5565b92505060208301516001600160401b0381111561565d57600080fd5b615669858286016155a5565b9150509250929050565b8381526040602082015260006153c260408301848661552f565b60006020828403121561569f57600080fd5b81516001600160401b038111156156b557600080fd5b8201601f810184136156c657600080fd5b80516156d46149258261485e565b8082825260208201915060208360051b8501019250868311156156f657600080fd5b6020840193505b8284101561175b5783516157108161443d565b8252602093840193909101906156fd565b60006020828403121561573357600080fd5b815161278281614d46565b60ff8181168382160190811115610ebc57610ebc615279565b60006060820160ff861683526001600160601b03851660208401526060604084015280845180835260808501915060208601925060005b818110156157ca57835180516001600160a01b031684526020908101516001600160601b0316818501529093019260409092019160010161578e565b5090979650505050505050565b600061ffff821661ffff81036157ef576157ef615279565b60010192915050565b60006020828403121561580a57600080fd5b81516001600160e01b03198116811461278257600080fd5b6001600160601b03818116838216029081169081811461476c5761476c615279565b60006001600160601b0383168061585d5761585d6153f4565b806001600160601b038416049150509291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a2646970667358221220b92168cdd7913389b4693f8d47acf022803b83aaede28b5d32f3a5d020a92d8264736f6c634300081b00330000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e800000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36","r":"0x10f2646003bbd9459a56b12254f9ccb5a907a165a845b6cd07cd624c72e8b765","s":"0x77b87a7a5eb45efedf0ea851f307e241663ea9056aaf0f51b07dfd89fead2959","yParity":"0x0","hash":"0xcbafc94e8857199dcd5144397f51cf94e359c3a69d7be0293c2a5d9be0351ff7"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x0","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x66f70a90","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0x569d170492b4479404a15081b9c0586140961739eee97878acb1017512056a08","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xaca90ae355bb795be46c6cc135f30c6c788731f6d1e48b24ffc6a90d9442005a","transactionsRoot":"0x641b83ff34d61c95ba624d73a08bb077bef1f5f31b6b555c6ceeeca4ab1e8bde","receiptsRoot":"0x2bef8b659656f30e49224194cab783e5830bd0cd5aa2ebf1836c7a67d0d84730","logsBloom":"0x00000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000004801000000000000000","difficulty":"0x0","number":"0x2","gasLimit":"0x1c9c380","gasUsed":"0x528fa","timestamp":"0x66f70a99","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x345fa48b","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1","gasLimit":"0x6b49c","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b5060405161074538038061074583398101604081905261002f91610259565b60005b825181101561006d576100658382815181106100505761005061032f565b6020026020010151600161007e60201b60201c565b600101610032565b5061007781610150565b5050610345565b6001600160a01b0382166100ef5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b60648201526084015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b0381166101be5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b60648201526084016100e6565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b038116811461025457600080fd5b919050565b6000806040838503121561026c57600080fd5b82516001600160401b038082111561028357600080fd5b818501915085601f83011261029757600080fd5b81516020828211156102ab576102ab610227565b8160051b604051601f19603f830116810181811086821117156102d0576102d0610227565b6040529283528183019350848101820192898411156102ee57600080fd5b948201945b83861015610313576103048661023d565b855294820194938201936102f3565b9650610322905087820161023d565b9450505050509250929050565b634e487b7160e01b600052603260045260246000fd5b6103f1806103546000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122082d0bf2d943ad14055e4e88fc955638b565f43d854afdcd3d6cd966fe8c2201a64736f6c634300081800330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000003000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x12fc79a3772c92ab4df5bd05a47021454c416e35ae7add73f8164d954819b5b3","s":"0x7e328ce431f086f345c778bee14663d427afca40fc358a8bab6477ee3547b546","yParity":"0x0","hash":"0x349f5791ce5597d671bfc13b1e0237de0732d456e59400e3416a0fda4c213de9"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xa9a73f22a7ec019b54a5a4d43296b03a0d61022763f5fdd971698f75d1b29f0a","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x70329eb5e4ff7ae96a4afaad3697848b7a41d125cbc5e9ba9a8d0e9dd0625753","transactionsRoot":"0x4c2f84d2402f07470bcd9b43707c6b07b76fd01ff99279d827447f1d53d730a9","receiptsRoot":"0xe5e7e90defbbf8b259db6472d3c0d68e13d2f873e047555264b1ff45e2f4cfcd","logsBloom":"0x00000000100000000000000000000000000000000040000000800000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000020000000000000000020000000000000100000800000000000000000040000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000200000000000040000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x6","gasLimit":"0x1c9c380","gasUsed":"0x532369","timestamp":"0x66f70a9d","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x20026474","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xa","gasLimit":"0x66535c","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6101206040523480156200001257600080fd5b5060405162005ec238038062005ec283398101604081905262000035916200016f565b6001600160a01b0380861660805284811660a052831660c0526001600160401b0380831660e0528116610100526200006c62000077565b5050505050620001e7565b600054610100900460ff1615620000e45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000137576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200014f57600080fd5b50565b80516001600160401b03811681146200016a57600080fd5b919050565b600080600080600060a086880312156200018857600080fd5b8551620001958162000139565b6020870151909550620001a88162000139565b6040870151909450620001bb8162000139565b9250620001cb6060870162000152565b9150620001db6080870162000152565b90509295509295909350565b60805160a05160c05160e05161010051615be0620002e2600039600081816105b501528181612007015281816120be0152612116015260008181610275015281816125a7015281816125db01528181612c0701528181612c340152818161437a01526143b501526000818161036d01528181610614015281816107a701528181610aef01528181610c3a01528181610dc201528181610f7d0152818161115e0152818161128801528181611459015281816118a601528181611a4401528181611b8301528181611d4501528181611e2f015261312a015260008181610241015261339c0152600081816104520152610e8d0152615be06000f3fe6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039b57600080fd5b506103af6103aa366004614e40565b610ca5565b60405161020f9190614eb9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ec7565b610d0a565b60405161020f9190614ee0565b34801561041557600080fd5b506103af610424366004614ec7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f28565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614f9b565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e40565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615045565b61144e565b34801561052f57600080fd5b5061022d61053e366004615071565b61168b565b34801561054f57600080fd5b5061022d61055e36600461518f565b611863565b34801561056f57600080fd5b5061022d61057e366004615260565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615045565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610687919061535b565b156106ad5760405162461bcd60e51b81526004016106a49061537d565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615422565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a919061535b565b156108375760405162461bcd60e51b81526004016106a49061537d565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b629190615471565b8935610b7160208c018c61548a565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a6154d0565b9050602002016020810190610baf91906154e6565b8a8a86818110610bc157610bc16154d0565b9050602002810190610bd3919061548a565b8a8a88818110610be557610be56154d0565b9050602002810190610bf7919061550d565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e81565b6002811115610dae57610dae614e81565b90525092915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610dff5760405162461bcd60e51b81526004016106a490615556565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615620565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f5592919061566f565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff0919061535b565b1561100d5760405162461bcd60e51b81526004016106a49061537d565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d19190615471565b8735610b7160208a018a61548a565b6000805b8881101561127a576112668b8b8b84818110611202576112026154d0565b905060200201602081019061121791906154e6565b8a358a8a8681811061122b5761122b6154d0565b905060200281019061123d919061548a565b8a8a8881811061124f5761124f6154d0565b9050602002810190611261919061550d565b6128c1565b6112709083615683565b91506001016111e4565b506033546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163c2c51c4091166112bf633b9aca00856156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e81565b60028111156113d9576113d9614e81565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615422565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114965760405162461bcd60e51b81526004016106a490615556565b6114a4633b9aca00826156f1565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca0083615705565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615719565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611919919061535b565b156119365760405162461bcd60e51b81526004016106a49061537d565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e36154d0565b60200260200101518784815181106119fd576119fd6154d0565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab7919061535b565b15611ad45760405162461bcd60e51b81526004016106a49061537d565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf69190615471565b8b35610b7160208e018e61548a565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d6154d0565b9050602002810190611c4f9190615739565b8c8c86818110611c6157611c616154d0565b9050602002810190611c73919061548a565b8c8c88818110611c8557611c856154d0565b9050602002810190611c97919061550d565b8c8c8a818110611ca957611ca96154d0565b9050602002810190611cbb919061550d565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee908390615683565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca009061575a565b613372565b602081015115611dde5760335460208201516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263c2c51c4092911690611d7f90633b9aca00906156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea2919061535b565b15611ebf5760405162461bcd60e51b81526004016106a49061537d565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f829190615771565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c6020615784565b6120e37f000000000000000000000000000000000000000000000000000000000000000084615719565b610d0491906157a7565b60006120fb600c6020615784565b6121068360016157cd565b6121109190615784565b610d04907f00000000000000000000000000000000000000000000000000000000000000006157cd565b6121466003602061575a565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e81565b600281111561238757612387614e81565b90525090506000816060015160028111156123a4576123a4614e81565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e906157ed565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f83615811565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000000000000081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000000000000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e81565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b0316612773919061575a565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b60405160029061282290849060009060200161582a565b60408051601f198184030181529082905261283c91615859565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d049190615471565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e81565b60028111156129c0576129c0614e81565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e81565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000000000000081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000000000000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e81565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b896158da565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b6158da565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e81565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a16565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f6158da565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e81565b600281111561333857613338614e81565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d6154d0565b60200260200101519050919050565b60008160018151811061342d5761342d6154d0565b6000610d0482600281518110613469576134696154d0565b60200260200101516147cd565b61348260036002615b17565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b61353090602061575a565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d0482600781518110613469576134696154d0565b60006136fd6001600160401b03808416908516615b23565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b8051909150156116865780806020019051810190613890919061535b565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b17565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b17565b61399a60c0840160a08501615b43565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615b8b83398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b17565b613a21610100840160e08501615b43565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b17565b613aa960e0840160c08501615b43565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b856158da565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b7690602061575a565b613b80848061548a565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b90602061575a565b613c18604085018561548a565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615b8b83398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e6003602061575a565b613cab602085018561548a565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d2481602061575a565b613d31606085018561548a565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd90602061575a565b613dea608085018561548a565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615b43565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615b43565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef3608086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb8602086018661548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b7614071604087018761548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a606086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615b43565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a9614268878061548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d0482600181518110613469576134696154d0565b6000610d0482600381518110613469576134696154d0565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000000000000006143dc565b50825b60408051808201909152600080825260208201526143fa8286615719565b6001600160401b03908116825260348054849260009161441c918591166157cd565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e81565b1461448d576039805490600061448083615b60565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e81565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b03166157cd565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b91906156f1565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c3576147506002856156f1565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b600080600283516148459190615705565b90506000816001600160401b038111156148615761486161508e565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a5838361575a565b815181106148b5576148b56154d0565b6020026020010151868360026148cb919061575a565b6148d6906001614c64565b815181106148e6576148e66154d0565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f198184030181529082905261492291615859565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906149629190615471565b828281518110614974576149746154d0565b6020908102919091010152600101614890565b50614993600283615705565b91505b8115614aa95760005b82811015614a96576002826149b4838361575a565b815181106149c4576149c46154d0565b6020026020010151838360026149da919061575a565b6149e5906001614c64565b815181106149f5576149f56154d0565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a3191615859565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a719190615471565b828281518110614a8357614a836154d0565b602090810291909101015260010161499f565b50614aa2600283615705565b9150614996565b80600081518110614abc57614abc6154d0565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb89190615859565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615b77565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b0380821115614d7257600080fd5b614d7e8c838d01614ccc565b985060408b0135915080821115614d9457600080fd5b614da08c838d01614ce4565b909850965060608b0135915080821115614db957600080fd5b614dc58c838d01614ce4565b909650945060808b0135915080821115614dde57600080fd5b50614deb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e1157600080fd5b5081356001600160401b03811115614e2857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e5357600080fd5b82356001600160401b03811115614e6957600080fd5b614e7585828601614dff565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614eb557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614e97565b600060208284031215614ed957600080fd5b5035919050565b60006080820190506001600160401b03808451168352806020850151166020840152806040850151166040840152506060830151614f216060840182614e97565b5092915050565b600080600080600060608688031215614f4057600080fd5b85356001600160401b0380821115614f5757600080fd5b614f6389838a01614dff565b90975095506020880135915080821115614f7c57600080fd5b50614f8988828901614dff565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fb757600080fd5b8835614fc281614c77565b975060208901356001600160401b0380821115614fde57600080fd5b614fea8c838d01614ce4565b909950975060408b013591508082111561500357600080fd5b61500f8c838d01614ccc565b965060608b0135915080821115614db957600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615025565b6000806040838503121561505857600080fd5b823561506381615025565b946020939093013593505050565b60006020828403121561508357600080fd5b81356136fd81615025565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150c7576150c761508e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156150f5576150f561508e565b604052919050565b60006001600160401b038211156151165761511661508e565b5060051b60200190565b600082601f83011261513157600080fd5b81356020615146615141836150fd565b6150cd565b8083825260208201915060208460051b87010193508684111561516857600080fd5b602086015b84811015615184578035835291830191830161516d565b509695505050505050565b6000806000606084860312156151a457600080fd5b83356001600160401b03808211156151bb57600080fd5b818601915086601f8301126151cf57600080fd5b813560206151df615141836150fd565b82815260059290921b8401810191818101908a8411156151fe57600080fd5b948201945b8386101561522557853561521681615025565b82529482019490820190615203565b9750508701359250508082111561523b57600080fd5b5061524886828701615120565b9250506152576040850161503a565b90509250925092565b60008060008060008060008060008060c08b8d03121561527f57600080fd5b6152888b614c8c565b995060208b01356001600160401b03808211156152a457600080fd5b6152b08e838f01614ccc565b9a5060408d01359150808211156152c657600080fd5b6152d28e838f01614ce4565b909a50985060608d01359150808211156152eb57600080fd5b6152f78e838f01614ce4565b909850965060808d013591508082111561531057600080fd5b61531c8e838f01614ce4565b909650945060a08d013591508082111561533557600080fd5b506153428d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b60006020828403121561536d57600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b60006020828403121561548357600080fd5b5051919050565b6000808335601e198436030181126154a157600080fd5b8301803591506001600160401b038211156154bb57600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156154f857600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261552457600080fd5b8301803591506001600160401b0382111561553e57600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b838110156155eb5781810151838201526020016155d3565b50506000910152565b6000815180845261560c8160208601602086016155d0565b601f01601f19169290920160200192915050565b60808152600061563460808301888a6155a7565b828103602084015261564681886155f4565b9050828103604084015261565b8186886155a7565b915050826060830152979650505050505050565b602081526000614adc6020830184866155a7565b80820182811260008312801582168215821617156156a3576156a3614c4e565b505092915050565b80820260008212600160ff1b841416156156c7576156c7614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b600082615700576157006156db565b500690565b600082615714576157146156db565b500490565b6001600160401b03828116828216039080821115614f2157614f21614c4e565b6000823561017e1983360301811261575057600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160280821691908281146156a3576156a3614c4e565b60006001600160401b03808416806157c1576157c16156db565b92169190910492915050565b6001600160401b03818116838216019080821115614f2157614f21614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161582357615823614c4e565b5060010190565b6000835161583c8184602088016155d0565b6001600160801b0319939093169190920190815260100192915050565b600082516157508184602087016155d0565b600082601f83011261587c57600080fd5b81356001600160401b038111156158955761589561508e565b6158a8601f8201601f19166020016150cd565b8181528460208386010111156158bd57600080fd5b816020850160208301376000918101602001919091529392505050565b600061018082360312156158ed57600080fd5b6158f56150a4565b82356001600160401b038082111561590c57600080fd5b6159183683870161586b565b8352602085013591508082111561592e57600080fd5b61593a3683870161586b565b6020840152604085013591508082111561595357600080fd5b61595f3683870161586b565b6040840152606085013591508082111561597857600080fd5b6159843683870161586b565b6060840152608085013591508082111561599d57600080fd5b506159aa3682860161586b565b6080830152506159bc60a08401614c8c565b60a08201526159cd60c08401614c8c565b60c08201526159de60e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a2857600080fd5b81516136fd81614c77565b600181815b80851115615a6e578160001904821115615a5457615a54614c4e565b80851615615a6157918102915b93841c9390800290615a38565b509250929050565b600082615a8557506001610d04565b81615a9257506000610d04565b8160018114615aa85760028114615ab257615ace565b6001915050610d04565b60ff841115615ac357615ac3614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615af1575081810a610d04565b615afb8383615a33565b8060001904821115615b0f57615b0f614c4e565b029392505050565b60006136fd8383615a76565b8181036000831280158383131683831282161715614f2157614f21614c4e565b600060208284031215615b5557600080fd5b81356136fd81614c77565b600081615b6f57615b6f614c4e565b506000190190565b6020815260006136fd60208301846155f456fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212203a1d7654540a3a59378fcb8f0dc45727b0865d15b2835f5c00ae74b9a4b3506964736f6c6343000818003300000000000000000000000042424242424242424242424242424242424242420000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3180000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000000000000000000000000000000000000773594000000000000000000000000000000000000000000000000000000000006059f460","r":"0x7ecbcc6f27db4f45aa67a6af7485ab6b6e83f09d606bfecc30b877551fae7858","s":"0x10649f0d149d7e197719260aea70a89f494fef4536fb68aa8b96ca19d82aeeed","yParity":"0x1","hash":"0xeec7885bd4acd3c5899e60e2f446f2c7677866554225055981920e21ab03ad31"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xb","gasLimit":"0x5b8ea","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b506040516104be3803806104be83398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610345806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea2646970667358221220042ec08fde05948b20d3f0fe8bf03cfe1d6ad33ecfc3fd565cbce702b2daa70b64736f6c63430008180033000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad788","r":"0xa8f304f599351a29274f956526e5378a6f37fd7cbd2027372f60cfcb2bdaec60","s":"0x72dbe54f8bbfd9bdc9544bc9ce8c9fda7331deb33b616cbf586e38a996522b58","yParity":"0x1","hash":"0x4270863cefc53e29f2a5156b1aa25114a8a4912c3fcd6ad984ed699a20b6fdc1"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xd4b95e4ec6f57d6d419c266057e9a588e0aa952c244f102815e22672412725f4","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x57c910587bbe81b0019139a52e1cf17d78bfdfedf3b556d0bb19ab8b81acbcec","transactionsRoot":"0x8cb5f7b260b945d22b4b2f0adfa7540ba2f202a500d719990781c7597fb97ec4","receiptsRoot":"0x8f0b8dfec97046256f17f750ce6d6d10751379505e22a70534d708514a7c2f6d","logsBloom":"0x00000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000","difficulty":"0x0","number":"0x9","gasLimit":"0x1c9c380","gasUsed":"0x320750","timestamp":"0x66f70aa0","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x18aab93e","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xf","gasLimit":"0x410465","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6101806040523480156200001257600080fd5b5060405162003dec38038062003dec8339810160408190526200003591620002e4565b868686868686866200004885826200037e565b63ffffffff1615620000ed5760405162461bcd60e51b815260206004820152606060248201527f52657761726473436f6f7264696e61746f723a2047454e455349535f5245574160448201527f5244535f54494d455354414d50206d7573742062652061206d756c7469706c6560648201527f206f662043414c43554c4154494f4e5f494e54455256414c5f5345434f4e4453608482015260a4015b60405180910390fd5b620000fc62015180866200037e565b63ffffffff16156200019d5760405162461bcd60e51b815260206004820152605760248201527f52657761726473436f6f7264696e61746f723a2043414c43554c4154494f4e5f60448201527f494e54455256414c5f5345434f4e4453206d7573742062652061206d756c746960648201527f706c65206f6620534e415053484f545f434144454e4345000000000000000000608482015260a401620000e4565b6001600160a01b0396871661012052949095166101405263ffffffff92831660805290821660a052811660c05291821660e0521661010052620001df620001f2565b5050466101605250620003b09350505050565b600054610100900460ff16156200025c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401620000e4565b60005460ff9081161015620002af576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114620002c757600080fd5b50565b805163ffffffff81168114620002df57600080fd5b919050565b600080600080600080600060e0888a0312156200030057600080fd5b87516200030d81620002b1565b60208901519097506200032081620002b1565b95506200033060408901620002ca565b94506200034060608901620002ca565b93506200035060808901620002ca565b92506200036060a08901620002ca565b91506200037060c08901620002ca565b905092959891949750929550565b600063ffffffff80841680620003a457634e487b7160e01b600052601260045260246000fd5b92169190910692915050565b60805160a05160c05160e051610100516101205161014051610160516139a562000447600039600061181f0152600081816104400152612295015260006106ec01526000818161035701526120c40152600081816102cb0152612170015260008181610419015261207301526000818161065e0152611dea01526000818161060401528181611ea10152611f7c01526139a56000f3fe608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613257565b610caa565b61033d61049a3660046132b7565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e3565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b16105143660046132fe565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613321565b611469565b6102b1610552366004613356565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6102b161068e366004613356565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc36600461339f565b61156b565b61033d6106cf366004613412565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342d565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344a565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613494565b61093b5760405162461bcd60e51b815260040161089e906134b1565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134f9565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110610b8957610b89613567565b9050602002810190610b9b919061357d565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c3565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a908390613709565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371c565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134f9565b600260975403610cf45760405162461bcd60e51b815260040161089e90613530565b6002609755600060ca610d0a60208601866132e3565b63ffffffff1681548110610d2057610d20613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a088018861372f565b90508110156110445736610e4f60e0890189613780565b83818110610e5f57610e5f613567565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137ca565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134f9565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137dd565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613494565b6113ea5760405162461bcd60e51b815260040161089e906134b1565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e3565b63ffffffff168154811061149457611494613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e5600184613801565b63ffffffff16815481106116fb576116fb613567565b906000526020600020906002020160000154036117245761171d600182613801565b9392505050565b8061172e8161381e565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000000000460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342d565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344a565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134f9565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110611a3257611a32613567565b9050602002810190611a44919061357d565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c3565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac3908390613709565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371c565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613780565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611e1a60a08301608084016132e3565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611ed060a08301608084016132e3565b611eda9190613854565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611fab60808301606084016132e3565b611fb59190613854565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e3565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff16426120a391906137ca565b111580156120ec57506120bc60808201606083016132e3565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642613709565b6121a660808301606084016132e3565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613780565b905081101561245357600061224d8480613780565b8381811061225d5761225d613567565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613494565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c083018361372f565b905061255e60a084018461372f565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613780565b905061260460c084018461372f565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e3565b6126af6040860186613877565b86606001612b77565b60005b6126c860a084018461372f565b90508110156124535761276260808401356126e660a086018661372f565b848181106126f6576126f6613567565b905060200201602081019061270b91906132e3565b61271860c087018761372f565b8581811061272857612728613567565b905060200281019061273a9190613877565b61274760e0890189613780565b8781811061275757612757613567565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613494565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138be565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138be565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f6565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613908565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613908565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b613092602082613709565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e919061391c565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff808211156131fa57600080fd5b818501915085601f83011261320e57600080fd5b81358181111561321d57600080fd5b8660208260051b850101111561323257600080fd5b60209290920196919550909350505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326a57600080fd5b823567ffffffffffffffff81111561328157600080fd5b61328d85828601613244565b9250506020830135613149816130db565b803563ffffffff811681146132b257600080fd5b919050565b600080604083850312156132ca57600080fd5b823591506132da6020840161329e565b90509250929050565b6000602082840312156132f557600080fd5b61171d8261329e565b60006020828403121561331057600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333357600080fd5b813567ffffffffffffffff81111561334a57600080fd5b612e4b84828501613244565b6000806040838503121561336957600080fd5b8235613374816130db565b946020939093013593505050565b80356132b2816130db565b803561ffff811681146132b257600080fd5b60008060008060008060c087890312156133b857600080fd5b86356133c3816130db565b955060208701356133d3816130db565b94506040870135935060608701356133ea816130db565b92506133f86080880161329e565b915061340660a0880161338d565b90509295509295509295565b60006020828403121561342457600080fd5b61171d8261338d565b60006020828403121561343f57600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a657600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359357600080fd5b9190910192915050565b818352600060208085019450826000805b868110156136025782356135c1816130db565b6001600160a01b03168852828401356bffffffffffffffffffffffff81168082146135ea578384fd5b898601525060409788019792909201916001016135ae565b50959695505050505050565b60008135601e1983360301811261362457600080fd5b820160208101903567ffffffffffffffff81111561364157600080fd5b8060061b360382131561365357600080fd5b60a0855261366560a08601828461359d565b91505061367460208401613382565b6001600160a01b03166020850152604083810135908501526136986060840161329e565b63ffffffff1660608501526136af6080840161329e565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136ea606083018461360e565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f3565b60208152600061171d602083018461360e565b6000808335601e1984360301811261374657600080fd5b83018035915067ffffffffffffffff82111561376157600080fd5b6020019150600581901b360382131561377957600080fd5b9250929050565b6000808335601e1984360301811261379757600080fd5b83018035915067ffffffffffffffff8211156137b257600080fd5b6020019150600681901b360382131561377957600080fd5b81810381811115610a7757610a776136f3565b63ffffffff8181168382160190808211156137fa576137fa6136f3565b5092915050565b63ffffffff8281168282160390808211156137fa576137fa6136f3565b600063ffffffff821680613834576138346136f3565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061386b5761386b61383e565b92169190910692915050565b6000808335601e1984360301811261388e57600080fd5b83018035915067ffffffffffffffff8211156138a957600080fd5b60200191503681900382131561377957600080fd5b6000826138cd576138cd61383e565b500490565b60005b838110156138ed5781810151838201526020016138d5565b50506000910152565b600082516135938184602087016138d2565b6000826139175761391761383e565b500690565b602081526000825180602084015261393b8160408501602087016138d2565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a24fa288bd4bdcb1a7a813fb6a838dbea7b30eebacde1df7b8b1ffae0b140b2b64736f6c63430008180033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000000000000000000000000000000000000093a8000000000000000000000000000000000000000000000000000000000005c4900000000000000000000000000000000000000000000000000000000000076a7000000000000000000000000000000000000000000000000000000000000278d000000000000000000000000000000000000000000000000000000000065fb7880","r":"0xaa5361b89cd28a7286f05d29f150da324afb5aa0f3bcfbba5cdc804d579298fc","s":"0x399d7540ed7b98e5ad46b6d13c40883fe03ba08a8dea7b976ba580f06f7cbd45","yParity":"0x0","hash":"0x8cfe1718165e545c4415c8ec5d5f8d4e4a09fa3a1a9dd23f47c8f9a453a90394"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x466245242c77425a83b88118b3c0991ed6aa22608925e5ec4117dd6439dbe96a","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x5684d3a87d10413eab5aa7bdbc2a3a09a3bb34df98417fa2fd07ae20e9159bed","transactionsRoot":"0xd8fdc6364a20a13ff7635eb1b1c572f2e4ca366d48e0d6b3ba58103f47a445e5","receiptsRoot":"0x8e44e65124058a25b7abab60b704d02afca126c11fcaaacb66dec8593dd7f1c2","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x1","gasLimit":"0x1c9c380","gasUsed":"0x6be89","timestamp":"0x66f70a98","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x0","gasLimit":"0x8c3ea","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6106948061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","r":"0x291319a991f8e2cefed902a8499975f8caf5e9b9d83e2babd366107bbb4c614e","s":"0x641cc004a0dc23eebf967d2b71fd3c6229514075142b722e7ed24ceb38eaebbe","yParity":"0x0","hash":"0x5d7261cd89ce0dce6deaa0108c6defbdae0b2749f8b2ab422590c912bbd7a823"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xdc661eb62f3503115532a4a4ebf9dbb29830a7f54b0435e7188a418d1ac7faf1","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xe9b60063aacd8c449a75c6d42c12340d0ad5ca0cc15869816475241b96f26a62","transactionsRoot":"0x5559e7c030fa3fc2052f5611dfb7b535bb0df3b5baae7b244a504e9be1a00750","receiptsRoot":"0x68145e2e03ccdfe486fa1f145040a9a8121359fce637c5caf7d8e74c0cf675a2","logsBloom":"0x00000000000000000000000040000008400000000000000000800000000000000010000000000000000000000000000000000000000000100000000000000000041000000000000000000400000402000001002000000000000000000000000000020000020000000000000300800800000004000000000000000000000000440000000100000000000000000000000000000000000080000000000000100000000000000000000000000000000400000000000000000000000000000000000000000024400000200000000000040000000000002008002000000000000020000000000000000100400800000400000000000000000000000000000001400200","difficulty":"0x0","number":"0xd","gasLimit":"0x1c9c380","gasUsed":"0x29531","timestamp":"0x66f70aa4","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xfc266be","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x17","gasLimit":"0x3c6fd","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000","r":"0xaf0be982c32239fd3356cec3c0f0c871c6c380af355b3a500e9bce289230bb06","s":"0x6de714223a1b07aa0785a9506d312a00008586c93941c887000a575c0070a892","yParity":"0x1","hash":"0x0522948d2d86e6eefacbffda3bf89dd98f7aadad2949c5b6086eac98993fee0f"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xe1f6cd22f9375fef53501446ba8ccbad8aa1109ada934708254fd611c48e641c","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x3ac2eb0697cce2295807854c1e073d8fd07d271b3083d65949c81a962596ae1d","transactionsRoot":"0xf33bbfcb9e3f417e8cb14193c4ffdcf367e582b87b1fe229b154bcedf9f3a438","receiptsRoot":"0x3545e5402e70d83d3c69d8c4c8e4d80b4b831bd83f81e5d8937173ef806d5b4b","logsBloom":"0x00000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000000000000000000000000800400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000","difficulty":"0x0","number":"0x8","gasLimit":"0x1c9c380","gasUsed":"0x45944a","timestamp":"0x66f70a9f","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1b047567","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xd","gasLimit":"0x37fd2f","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6101006040523480156200001257600080fd5b506040516200337938038062003379833981016040819052620000359162000140565b6001600160a01b0380841660805280831660a052811660c0526200005862000065565b50504660e0525062000194565b600054610100900460ff1615620000d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000125576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013d57600080fd5b50565b6000806000606084860312156200015657600080fd5b8351620001638162000127565b6020850151909350620001768162000127565b6040850151909250620001898162000127565b809150509250925092565b60805160a05160c05160e05161318f620001ea60003960006114b70152600061046e0152600061028501526000818161051a01528181610b8201528181610ecf01528181610f230152611a6c015261318f6000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b3d565b610a64565b61021e610a9c565b61032461030f366004612b76565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612b99565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bc7565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c08565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61021e61049e366004612cd1565b610d50565b61021e6104b1366004612d13565b610ec4565b61021e6104c4366004612d64565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612db7565b610fe1565b61021e6104fd366004612d13565b611019565b61021e610510366004612de3565b61114d565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61025a61054a366004612bc7565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e4f565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e6c565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eb6565b6106c15760405162461bcd60e51b815260040161062490612ed3565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f1b565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eb6565b610b245760405162461bcd60e51b815260040161062490612ed3565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bbf5760405162461bcd60e51b815260040161062490612f85565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612fe3565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612fe3565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f1b565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612fe3565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612fe3565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612fe3565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612fe3565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f0c5760405162461bcd60e51b815260040161062490612f85565b610bca84848484611d4c565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f605760405162461bcd60e51b815260040161062490612f85565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f1b565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612fe3565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612fe3565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612fe3565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612fe3565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612fe3565b90506020020160208101906113619190612ff9565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f000000000000000000000000000000000000000000000000000000000000000046036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e4f565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e6c565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906117839086908690600401613066565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c4919061307f565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130a9565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130d8565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612fe3565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130eb565b815481106122e8576122e8612fe3565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612fe3565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e6130fe565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613114565b036124c05750565b60018160048111156124d4576124d4613114565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613114565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613114565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613114565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eb6565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130d8565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061312a565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b81526004016106249190613146565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff80821115612aa357600080fd5b818901915089601f830112612ab757600080fd5b813581811115612ac957612ac9612a1e565b604051601f8201601f19908116603f01168101908382118183101715612af157612af1612a1e565b816040528281528c6020848701011115612b0a57600080fd5b8260208601602083013760006020848301015280955050505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5057600080fd5b8235612b5b816129d3565b91506020830135612b6b81612b2f565b809150509250929050565b600060208284031215612b8857600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bac57600080fd5b8235612bb7816129d3565b91506020830135612b6b816129d3565b600080600060608486031215612bdc57600080fd5b8335612be7816129d3565b92506020840135612bf7816129d3565b929592945050506040919091013590565b604080825283519082018190526000906020906060840190828701845b82811015612c4a5781516001600160a01b031684529284019290840190600101612c25565b5050508381038285015284518082528583019183019060005b81811015612c7f57835183529284019291840191600101612c63565b5090979650505050505050565b60008083601f840112612c9e57600080fd5b50813567ffffffffffffffff811115612cb657600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612ce457600080fd5b823567ffffffffffffffff811115612cfb57600080fd5b612d0785828601612c8c565b90969095509350505050565b60008060008060808587031215612d2957600080fd5b8435612d34816129d3565b93506020850135612d44816129d3565b92506040850135612d54816129d3565b9396929550929360600135925050565b60008060008060808587031215612d7a57600080fd5b8435612d85816129d3565b93506020850135612d95816129d3565b9250604085013591506060850135612dac816129d3565b939692955090935050565b60008060408385031215612dca57600080fd5b8235612dd5816129d3565b946020939093013593505050565b60008060008060408587031215612df957600080fd5b843567ffffffffffffffff80821115612e1157600080fd5b612e1d88838901612c8c565b90965094506020870135915080821115612e3657600080fd5b50612e4387828801612c8c565b95989497509550505050565b600060208284031215612e6157600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612ec857600080fd5b8151611d4581612b2f565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561300b57600080fd5b8135611d4581612b2f565b60005b83811015613031578181015183820152602001613019565b50506000910152565b60008151808452613052816020860160208601613016565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461303a565b60006020828403121561309157600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130bb57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130c2565b818103818111156121e6576121e66130c2565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161313c818460208701613016565b9190910192915050565b602081526000611d45602083018461303a56fea26469706673582212208f93c215613625117caec9113257c8859da3eb85d10c3f4716517f3a64d0f80c64736f6c63430008180033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc90000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853","r":"0xfb748ceeef81a17a8b56d2d3c818e888787ba3c017eaa29a04a927871603f527","s":"0xfcefcdeed8257cfacd57e6d933299e3bf6afd5ecb75fe276fde2ecac9c6dc9e","yParity":"0x1","hash":"0xd4419af41a68cb6d42cf7795e938fa39e1bea5600b124364fb6c5b304c2f9220"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xe","gasLimit":"0x227001","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60c06040523480156200001157600080fd5b5060405162001f6438038062001f64833981016040819052620000349162000118565b6001600160a01b0381166080526200004b62000056565b504660a0526200014a565b600054610100900460ff1615620000c35760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000116576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012b57600080fd5b81516001600160a01b03811681146200014357600080fd5b9392505050565b60805160a051611ded620001776000396000610ea501526000818161032401526109810152611ded6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b3d565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b83565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000000000000000000000000000000000000000000081565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611bf5565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c12565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c5c565b6104cb5760405162461bcd60e51b815260040161042e90611c7e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c5c565b6107345760405162461bcd60e51b815260040161042e90611c7e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611d988339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c5c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cc6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f00000000000000000000000000000000000000000000000000000000000000004603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611bf5565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c12565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611cf5565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d4c565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d76565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b915060208381013567ffffffffffffffff80821115611a9257600080fd5b9085019060608288031215611aa657600080fd5b611aae6119fc565b823582811115611abd57600080fd5b8301601f81018913611ace57600080fd5b803583811115611ae057611ae06119e6565b611af2601f8201601f19168701611a25565b93508084528986828401011115611b0857600080fd5b808683018786013760008682860101525050818152838301358482015260408301356040820152809450505050509250929050565b60008060008060808587031215611b5357600080fd5b8435611b5e8161188d565b93506020850135611b6e8161188d565b93969395505050506040820135916060013590565b60008060208385031215611b9657600080fd5b823567ffffffffffffffff80821115611bae57600080fd5b818501915085601f830112611bc257600080fd5b813581811115611bd157600080fd5b866020828501011115611be357600080fd5b60209290920196919550909350505050565b600060208284031215611c0757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c6e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b8281526000602060406020840152835180604085015260005b81811015611d2a57858101830151858201606001528201611d0e565b506000606082860101526060601f19601f830116850101925050509392505050565b600060208284031215611d5e57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a264697066735822122016d51116de2d4e6ebc6b9dfa2dada06d1f6e51f6dc472774de5d172aa09dda6d64736f6c63430008180033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x48a16075736feec1d7ae0e7a9b3677b0859e06ec3bcbec1d35febe5d6f7217b8","s":"0x523fccf81775a6a51a01e12b7094af9de70f6cf037224fca6ec3d7ac950b7de5","yParity":"0x1","hash":"0x3da35e0d84e5fe1be7f74d2888bf3c992f85e98792e5ac0b47f43e8cc504f7b0"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x72ff342cc0acfb86cbd4513d76ab90297e2c56d272e3165a5e381274ca299052","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x27ed488c49bda37caa9713b6947d47c729e0fdc14d39bbc282f94df073e43953","transactionsRoot":"0x07c54af8c57610687a6dfd0322c02160c0843bd242eb8000080b8b64a2511b95","receiptsRoot":"0xf1fbe0e9be522e6a02e22330de7f182c63f415903e4d304cde617a52d11d5a52","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xb","gasLimit":"0x1c9c380","gasUsed":"0x46d01","timestamp":"0x66fa9fd6","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1335ea85","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x36","gasLimit":"0x5c087","maxFeePerGas":"0x2b33222f","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b5060405161046a38038061046a83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6103d7806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea264697066735822122061fa9cc8916c2122543914d684bb9f917137a2515c322ada32d64f60e70550cb64736f6c634300080c00330000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","r":"0xcb08604ff6fde5f1b8246dd496edbe01bb4eed6fd66823c6aff4d23e9aaf5579","s":"0x6e94aecdfda016a7b44a338a42cd09294c3d69ef2a577227f53390708349eb3e","yParity":"0x0","hash":"0x5ba6faf2a70c742aa168d11c51d97037d73154708c6ecd35bd61fc87b0af9050"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xee6cb7f6ae5c0ed43bfc6d081e3fc7dea15f3d312f33bd7874634a2922cce52e","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x6acb49f271d1a8d198d0b98c0f154697b63a2af445353e14bd0082f6f3ce4c95","transactionsRoot":"0x2e4849fb1752ca03e0033aedbe66d293e0c08393e0a54a97edcafaf2e3f6403f","receiptsRoot":"0xf7923dfd203bf1133de6657c6800f59f52fb1178b4f9595a4398206b158bd8bf","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000002000000000000000000000008000000000000000000000000000000000000000000020000000000000000000000000040000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x5","gasLimit":"0x1c9c380","gasUsed":"0x8be1b","timestamp":"0x66f70a9c","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x246231ea","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x9","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xc5ce85c01e8d9f4fdb978bc911d86917046340559eed7ba17eef05bf5c1d2a09","s":"0x28f3d7c299d27a33ff5b2eaf8440f2cedc6436d386c770fae241adcd442f3993","yParity":"0x1","hash":"0xb030f2d4fab25e0e55fbea021823b7c402506436d336bb86ae31f21a36dbe5a7"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x4e339f47e5c414499741f7c79245654e069b212d8954eb2f72386530919f3cad","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xac240dd219971f687d79ca94796c3a86109ff3623d7d2ffeefa6fc77f1a3c789","transactionsRoot":"0x9b700b25c1e0ad12218163cd48532766a6bcb2d328a5f827292078779fa39df2","receiptsRoot":"0x89ef21aa8a62383f43ba6ca07738bf12f98c1e3bfcf998feaac1e018c3073312","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000040000000000000800000000000000000000000000000000040000000000000000000000000000000008000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x4","gasLimit":"0x1c9c380","gasUsed":"0x8be1b","timestamp":"0x66f70a9b","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x295b061d","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x8","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x78ac6076b6039c4adc742125c02744cfaba9f22ce6a722b861927d667231d136","s":"0x616ad4526e3fca6caeb6caef070e9005814e29eccfd515db8813bda044848560","yParity":"0x0","hash":"0x78097108572bd24a0d9d38402e08deba85f116288eb014d9f4716584e68fc3b1"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x66835bd370fe530f0849c43835f64e9d70ef796d79b976afce6a9d55047991b3","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x518da3a4ac459261de9dc65bc384b40ce345d9486b6df0d6d9f300dce7e7ce8f","transactionsRoot":"0xc616ef56b3fa5e6ccd062c5332871df5c59b5865914b798ffd906fe66f1bed8c","receiptsRoot":"0xc39c69e92abcb24804e75039383b16e192af5974159046e5d8b0495a108fbda7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xa","gasLimit":"0x1c9c380","gasUsed":"0xd0215","timestamp":"0x66f70aa1","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1641ea6d","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x10","gasLimit":"0x10e7de","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b50604051610efe380380610efe83398101604081905261002f9161004e565b5050610088565b6001600160a01b038116811461004b57600080fd5b50565b6000806040838503121561006157600080fd5b825161006c81610036565b602084015190925061007d81610036565b809150509250929050565b610e67806100976000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd5565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d13565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d60565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d7d565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610dc7565b6105b35760405162461bcd60e51b815260040161051990610de9565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610dc7565b61070d5760405162461bcd60e51b815260040161051990610de9565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d60565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d7d565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff80821115610c8b57600080fd5b818501915085601f830112610c9f57600080fd5b813581811115610cae57600080fd5b8660208260051b8501011115610cc357600080fd5b60209290920196919550909350505050565b600080600060608486031215610cea57600080fd5b8335610cf581610af7565b9250610d0360208501610b0c565b9150604084013590509250925092565b60008060008060808587031215610d2957600080fd5b8435610d3481610af7565b9350610d4260208601610b0c565b9250610d5060408601610b0c565b9396929550929360600135925050565b600060208284031215610d7257600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dd957600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea264697066735822122073763b5180077a8bc6ac9f9f13d1ff53a2202a0e325b92566fd1ff7df689217864736f6c63430008180033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x8748d4fad66ca0d0073e108fb37d6acb5e7c585f0b23b43d69595e6e39de94e","s":"0x8dc88fff6d49d871df32f73b27b9772ded6c12814cfaa5b679d5095429a9f67","yParity":"0x0","hash":"0x3e4e0ce43145a9e80b5f0dad88697d66d94d83368a0f92a5c79bf7274d95f592"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x192ab934dd1655cf1ba727ced7297f576c334292346371327bbb9b7eec5802f2","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x51f9379d7fb0e86aabdd943488da9f0bdc6ab8a9a40a70d0b234e451c957e6fa","transactionsRoot":"0x6ac261ddd59341466f2bf075dd75acb98405e09549ac494d883b9d248aaa92d1","receiptsRoot":"0x942c5109d475ef403884c6c2f8b29b83c9f3ee54d7bccde8aa46fac213a3af3b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000010000000000000000000000000000008000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000100001000","difficulty":"0x0","number":"0xe","gasLimit":"0x1c9c380","gasUsed":"0xcf71","timestamp":"0x66fa9fd9","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xd3a1a95","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x39","gasLimit":"0xd0cd","maxFeePerGas":"0x1e28dd2f","maxPriorityFeePerGas":"0x1","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","value":"0xde0b6b3a7640000","accessList":[],"input":"0x4223d5510000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0","r":"0x654826819943bc935c0fdb94676c579fc7cb80bafe60edb5cb1c5f1b59c84515","s":"0x2daeb32effd913767fa1d143e8cd410e9c6e445c3e5b50601d6bf68669b92d2","yParity":"0x0","hash":"0xa03947089b4d209dcb969accc740072a4de1a60d680f61dde8f9ed0a6ae14cc7"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xaa8cafe1e3a77a900e4c02e1008708ebeb53ed2b67bc69ab5ecdbc2cb3c12764","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x39e2ef882251c30edfaab014fc4fb8bac61ba012da652c983ea2aad2df13fd4f","transactionsRoot":"0x6364ed9212c3b8319e6b6eef8e7a671af2eccbf2a9a4346b41ceb6f73e0ff210","receiptsRoot":"0xd79f6831f8b92a1c99f459eb237da5decf888063f4598ea13d2cdd2a22031b71","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x11","gasLimit":"0x1c9c380","gasUsed":"0x529e0","timestamp":"0x66f70aa8","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x96b3b7c","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1b","gasLimit":"0x6b600","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b50610528806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047c565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d1565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b9150604084013590509250925092565b60006020828403121561048e57600080fd5b610497826103fa565b9392505050565b600080604083850312156104b157600080fd5b6104ba836103fa565b91506104c8602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122020d7e8b980aa0c2b46b040d513e5ae1f916c9610cc2589a32d3485f141c4d93e64736f6c63430008180033","r":"0x8f5ad71c84849cbab2fa01cb31dd2a3d54cd6930732cd6a6549d42d240412275","s":"0x13c6d7b562acf1977f47c0adab76b9c65cc32ef63aa6c85425fa4c77e7b5671b","yParity":"0x0","hash":"0x27ff860d43af616478665f6b796d139e3ccaa80150ea832e0abe67638df48560"}},"impersonated_sender":null}],"ommers":[]}],"transactions":[{"info":{"transaction_hash":"0x0e9e27aaf89c8c4cbdb453832e3d5e2d086b6f5b18a1bb38c5a9833c9d9d1b58","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","traces":[{"parent":null,"children":[1,3,5],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x61018060405234801561001157600080fd5b50604051615834380380615834833981016040819052610030916103fb565b6001600160a01b0380851660805280841660a05280831660c052811660e052818484828461005c610327565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100dd919061045a565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610135573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610159919061045a565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d8919061045a565b6001600160a01b03908116610160528516905061022c57604051630b0f5aa160e11b815260206004820152600c60248201526b6176734469726563746f727960a01b60448201526064015b60405180910390fd5b6001600160a01b03831661027857604051630b0f5aa160e11b81526020600482015260126024820152713932bbb0b93239a1b7b7b93234b730ba37b960711b6044820152606401610223565b6001600160a01b0382166102cf57604051630b0f5aa160e11b815260206004820152601360248201527f7265676973747279436f6f7264696e61746f72000000000000000000000000006044820152606401610223565b6001600160a01b03811661031657604051630b0f5aa160e11b815260206004820152600d60248201526c7374616b65526567697374727960981b6044820152606401610223565b61031e610327565b5050505061047e565b600054610100900460ff161561038f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610223565b60005460ff90811610156103e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146103f857600080fd5b50565b6000806000806080858703121561041157600080fd5b845161041c816103e3565b602086015190945061042d816103e3565b604086015190935061043e816103e3565b606086015190925061044f816103e3565b939692955090935050565b60006020828403121561046c57600080fd5b8151610477816103e3565b9392505050565b60805160a05160c05160e051610100516101205161014051610160516152a961058b6000396000818161065401526117dd01526000818161039701526119f00152600081816103cb01528181611bdd0152611dcd0152600081816104320152818161100f015281816114a30152818161164a0152611891015260008181610d4401528181610e9501528181610f2c01528181612b4b01528181612cc40152612d63015260008181610b6b01528181610bfa01528181610c7a015281816121660152818161223201528181612a860152612c1f01526000818161311a015281816131d601526132b90152600081816103fc015281816121ba0152818161228e015261230d01526152a96000f3fe6080604052600436106101fd5760003560e01c806395c6d6041161010d578063d66eaabd116100a0578063f474b5201161006f578063f474b520146106ab578063f9120af6146106d8578063fa534dc0146106f8578063fc299dee14610718578063fce36c7d1461073857600080fd5b8063d66eaabd1461062f578063df5cf72314610642578063e481af9d14610676578063f2fde38b1461068b57600080fd5b8063ab21739a116100dc578063ab21739a1461056b578063b099627e1461058b578063b98d0908146105f5578063c0c53b8b1461060f57600080fd5b806395c6d604146104eb5780639926ee7d1461050b578063a364f4da1461052b578063a98fb3551461054b57600080fd5b80634ae07c37116101905780636d14a9871161015f5780636d14a9871461042057806370a0823114610454578063715018a614610498578063800fb61f146104ad5780638da5cb5b146104cd57600080fd5b80634ae07c37146103575780635df459461461038557806368304835146103b95780636b3aa72e146103ed57600080fd5b80633bc28c8c116101cc5780633bc28c8c146102cc578063416c7e5e146102ec5780634223d5511461030c5780634a5bf6321461031f57600080fd5b806306045a9114610213578063171f1d5b146102485780632e1a7d4d1461027f57806333cfb7b71461029f57600080fd5b3661020e5761020c3334610758565b005b600080fd5b34801561021f57600080fd5b5061023361022e366004614238565b6107ed565b60405190151581526020015b60405180910390f35b34801561025457600080fd5b5061026861026336600461438b565b6108e4565b60408051921515835290151560208301520161023f565b34801561028b57600080fd5b5061020c61029a3660046143dc565b610a6e565b3480156102ab57600080fd5b506102bf6102ba3660046143f5565b610b46565b60405161023f9190614412565b3480156102d857600080fd5b5061020c6102e73660046143f5565b610ff9565b3480156102f857600080fd5b5061020c610307366004614461565b61100d565b61020c61031a3660046143f5565b611144565b34801561032b57600080fd5b5060cb5461033f906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b34801561036357600080fd5b50610377610372366004614759565b61114e565b60405161023f9291906147f4565b34801561039157600080fd5b5061033f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c557600080fd5b5061033f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103f957600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061033f565b34801561042c57600080fd5b5061033f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561046057600080fd5b5061048a61046f3660046143f5565b6001600160a01b0316600090815260ca602052604090205490565b60405190815260200161023f565b3480156104a457600080fd5b5061020c612082565b3480156104b957600080fd5b5061020c6104c83660046143f5565b612096565b3480156104d957600080fd5b506033546001600160a01b031661033f565b3480156104f757600080fd5b50610233610506366004614885565b612136565b34801561051757600080fd5b5061020c6105263660046148d0565b61215b565b34801561053757600080fd5b5061020c6105463660046143f5565b612227565b34801561055757600080fd5b5061020c610566366004614987565b6122ee565b34801561057757600080fd5b5061020c6105863660046149d7565b612342565b34801561059757600080fd5b506105d36105a63660046143dc565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff909416845291151560208401529082015260600161023f565b34801561060157600080fd5b506097546102339060ff1681565b34801561061b57600080fd5b5061020c61062a3660046149fe565b612701565b61020c61063d366004614a49565b6128c6565b34801561064e57600080fd5b5061033f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561068257600080fd5b506102bf612a80565b34801561069757600080fd5b5061020c6106a63660046143f5565b612e2c565b3480156106b757600080fd5b5061048a6106c63660046143f5565b60ca6020526000908152604090205481565b3480156106e457600080fd5b5061020c6106f33660046143f5565b612ea2565b34801561070457600080fd5b50610233610713366004614a9b565b612ecc565b34801561072457600080fd5b5060655461033f906001600160a01b031681565b34801561074457600080fd5b5061020c610753366004614b1b565b612f41565b8060000361078157604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca6020526040812080548392906107a9908490614ba6565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a25050565b6000806001600160a01b038316610805575084610831565b8583604051602001610818929190614bb9565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff1690036108565760009150506108d8565b600081815260c96020526040902054640100000000900460ff1661087e5760009150506108d8565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f19818403018152919052805160208201209091506108d2878983896132f0565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018787600001518860200151886000015160006002811061092c5761092c614bd4565b60200201518951600160200201518a6020015160006002811061095157610951614bd4565b60200201518b6020015160016002811061096d5761096d614bd4565b602090810291909101518c518d8301516040516109ca9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6109ed9190614bea565b9050610a60610a066109ff8884613308565b8690613399565b610a0e61342e565b610a56610a4785610a41604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613308565b610a508c6134ee565b90613399565b886201d4c061357d565b909890975095505050505050565b33600090815260ca6020526040902054811115610abf5733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018390526044820152606401610778565b33600090815260ca602052604081208054839290610ade908490614c0c565b909155505033600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610b42573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd69190614c1f565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c659190614c38565b90506001600160c01b0381161580610cff57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190614c61565b60ff16155b15610d1f5760408051600080825260208201909252905b50949350505050565b6000610d33826001600160c01b0316613797565b90506000805b8251811015610dff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610d8357610d83614bd4565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610deb9190614c1f565b610df59083614ba6565b9150600101610d39565b506000816001600160401b03811115610e1a57610e1a614110565b604051908082528060200260200182016040528015610e43578160200160208202803683370190505b5090506000805b8451811015610fec576000858281518110610e6757610e67614bd4565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015610edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f009190614c1f565b905060005b81811015610fe1576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015610f7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9e9190614c99565b60000151868681518110610fb457610fb4614bd4565b6001600160a01b039092166020928302919091019091015284610fd681614cdc565b955050600101610f05565b505050600101610e4a565b5090979650505050505050565b611001613859565b61100a816138b3565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108f9190614cf5565b6001600160a01b0316336001600160a01b03161461113b5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610778565b61100a8161391c565b61100a8134610758565b604080518082019091526060808252602082015260008260400151516040518060400160405280600181526020016000815250511480156111aa57508260a0015151604051806040016040528060018152602001600081525051145b80156111d157508260c0015151604051806040016040528060018152602001600081525051145b80156111f857508260e0015151604051806040016040528060018152602001600081525051145b6112625760405162461bcd60e51b8152602060048201526041602482015260008051602061525483398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610778565b825151602084015151146112da5760405162461bcd60e51b815260206004820152604460248201819052600080516020615254833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610778565b4363ffffffff168463ffffffff16106113495760405162461bcd60e51b815260206004820152603c602482015260008051602061525483398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610778565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561140a5761140a614110565b604051908082528060200260200182016040528015611433578160200160208202803683370190505b5081526020860151516001600160401b0381111561145357611453614110565b60405190808252806020026020018201604052801561147c578160200160208202803683370190505b508160200181905250600061152860405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115239190614c61565b613963565b905060005b8760200151518110156117b9576115728860200151828151811061155357611553614bd4565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061158857611588614bd4565b602090810291909101015280156116485760208301516115a9600183614c0c565b815181106115b9576115b9614bd4565b602002602001015160001c836020015182815181106115da576115da614bd4565b602002602001015160001c11611648576040805162461bcd60e51b815260206004820152602481019190915260008051602061525483398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610778565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec63518460200151838151811061168d5761168d614bd4565b60200260200101518b8b6000015185815181106116ac576116ac614bd4565b60200260200101516040518463ffffffff1660e01b81526004016116e99392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a9190614c38565b6001600160c01b03168360000151828151811061174957611749614bd4565b6020026020010181815250506117af6109ff611783848660000151858151811061177557611775614bd4565b6020026020010151166139f6565b8a60200151848151811061179957611799614bd4565b6020026020010151613a2190919063ffffffff16565b945060010161152d565b50506117c483613b04565b60975490935060ff166000816117db57600061185d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185d9190614c1f565b905060005b604051806040016040528060018152602001600081525051811015611f535782156119ee578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c42604051806040016040528060018152602001600081525085815181106118e6576118e6614bd4565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561192a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194e9190614c1f565b6119589190614ba6565b116119ee5760405162461bcd60e51b8152602060048201526066602482015260008051602061525483398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610778565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611a4557611a45614bd4565b602001015160f81c60f81b60f81c8c8c60a001518581518110611a6a57611a6a614bd4565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aea9190614d12565b6001600160401b031916611b0d8a60400151838151811061155357611553614bd4565b67ffffffffffffffff191614611ba95760405162461bcd60e51b8152602060048201526061602482015260008051602061525483398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610778565b611bd989604001518281518110611bc257611bc2614bd4565b60200260200101518761339990919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611c3257611c32614bd4565b602001015160f81c60f81b60f81c8c8c60c001518581518110611c5757611c57614bd4565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd79190614d3d565b85602001518281518110611ced57611ced614bd4565b6001600160601b03909216602092830291909101820152850151805182908110611d1957611d19614bd4565b602002602001015185600001518281518110611d3757611d37614bd4565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611f4957611dc686600001518281518110611d8157611d81614bd4565b602002602001015160405180604001604052806001815260200160008152508581518110611db157611db1614bd4565b016020015160f81c60ff161c60019081161490565b15611f41577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611e2257611e22614bd4565b602001015160f81c60f81b60f81c8e89602001518581518110611e4757611e47614bd4565b60200260200101518f60e001518881518110611e6557611e65614bd4565b60200260200101518781518110611e7e57611e7e614bd4565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f069190614d3d565b8751805185908110611f1a57611f1a614bd4565b60200260200101818151611f2e9190614d5a565b6001600160601b03169052506001909101905b600101611d5b565b5050600101611862565b505050600080611f6d8a868a606001518b608001516108e4565b9150915081611fde5760405162461bcd60e51b8152602060048201526043602482015260008051602061525483398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610778565b8061203f5760405162461bcd60e51b8152602060048201526039602482015260008051602061525483398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610778565b5050600087826020015160405160200161205a929190614d79565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b61208a613859565b6120946000613b9f565b565b600054600290610100900460ff161580156120b8575060005460ff8083169116105b6120d45760405162461bcd60e51b815260040161077890614dc1565b6000805461ffff191660ff8316176101001790556120f182612ea2565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000818484604051612149929190614e0f565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146121a35760405162461bcd60e51b815260040161077890614e1f565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906121f19085908590600401614edd565b600060405180830381600087803b15801561220b57600080fd5b505af115801561221f573d6000803e3d6000fd5b505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461226f5760405162461bcd60e51b815260040161077890614e1f565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b5050505050565b6122f6613859565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb355906122b9908490600401614f28565b60cb546001600160a01b031633146123825760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610778565b60005a90506000848460405160200161239c929190614bb9565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff90911690036123f1576040516311cb69a760e11b815260048101839052602401610778565b8054640100000000900460ff161561241f57604051634e78d7f960e11b815260048101839052602401610778565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca602052604090205410156124a25760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610778565b80546000906124b990849063ffffffff168761114e565b509050604360ff1681602001516000815181106124d8576124d8614bd4565b60200260200101516124ea9190614f3b565b6001600160601b03166064826000015160008151811061250c5761250c614bd4565b60200260200101516001600160601b03166125279190614f64565b10156125ba576064816000015160008151811061254657612546614bd4565b60200260200101516001600160601b03166125619190614f64565b604360ff16826020015160008151811061257d5761257d614bd4565b602002602001015161258f9190614f3b565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610778565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a6126069087614c0c565b6126139062011170614ba6565b61261d9190614f64565b9050826001015481111561265457600183015460405163437e283f60e11b8152600481019190915260248101829052604401610778565b6001600160a01b038716600090815260ca60205260408120805483929061267c908490614c0c565b90915550506001600160a01b038716600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156126f6573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff16158080156127215750600054600160ff909116105b8061273b5750303b15801561273b575060005460ff166001145b6127575760405162461bcd60e51b815260040161077890614dc1565b6000805460ff19166001179055801561277a576000805461ff0019166101001790555b6001600160a01b0384166127c057604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610778565b6001600160a01b03831661280a57604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610778565b6001600160a01b03821661285557604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610778565b61285f8484613bf1565b60cb80546001600160a01b0319166001600160a01b03841617905580156128c0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600084336040516020016128db929190614bb9565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff161561292a57604051630c40bc4360e21b815260048101829052602401610778565b34156129875733600090815260ca60205260408120805434929061294f908490614ba6565b909155505033600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a25b33600090815260ca60205260409020548211156129d85733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610778565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612a70913391908a908a908a90614f7b565b60405180910390a2505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b069190614c61565b60ff16905080600003612b2757505060408051600081526020810190915290565b6000805b82811015612bd257604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbe9190614c1f565b612bc89083614ba6565b9150600101612b2b565b506000816001600160401b03811115612bed57612bed614110565b604051908082528060200260200182016040528015612c16578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f9190614c61565b60ff16811015612e2257604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d379190614c1f565b905060005b81811015612e18576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd59190614c99565b60000151858581518110612deb57612deb614bd4565b6001600160a01b039092166020928302919091019091015283612e0d81614cdc565b945050600101612d3c565b5050600101612c1d565b5090949350505050565b612e34613859565b6001600160a01b038116612e995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610778565b61100a81613b9f565b612eaa613859565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190612f00908b908b908b908b908b908b908b908b90600401614fd2565b602060405180830381865afa158015612f1d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d89190615034565b6065546001600160a01b03163314612fd65760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610778565b60005b818110156132a157828282818110612ff357612ff3614bd4565b90506020028101906130059190615051565b6130169060408101906020016143f5565b6001600160a01b03166323b872dd333086868681811061303857613038614bd4565b905060200281019061304a9190615051565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156130a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c59190615034565b5060008383838181106130da576130da614bd4565b90506020028101906130ec9190615051565b6130fd9060408101906020016143f5565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561316b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318f9190614c1f565b90508383838181106131a3576131a3614bd4565b90506020028101906131b59190615051565b6131c69060408101906020016143f5565b6001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000008387878781811061320857613208614bd4565b905060200281019061321a9190615051565b604001356132289190614ba6565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132979190615034565b5050600101612fd9565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906121f190859085906004016150d8565b6000836132fe868585613c6e565b1495945050505050565b604080518082019091526000808252602082015261332461401e565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061335357fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610778565b505092915050565b60408051808201909152600080825260208201526133b561403c565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806133f057fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610778565b61343661405a565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201909152600080825260208201526000808061351e60008051602061521483398151915286614bea565b90505b61352a81613d6b565b90935091506000805160206152148339815191528283098303613563576040805180820190915290815260208101919091529392505050565b600080516020615214833981519152600182089050613521565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906135af61407f565b60005b600281101561376a5760006135c8826006614f64565b90508482600281106135dc576135dc614bd4565b602002015151836135ee836000614ba6565b600c81106135fe576135fe614bd4565b602002015284826002811061361557613615614bd4565b6020020151602001518382600161362c9190614ba6565b600c811061363c5761363c614bd4565b602002015283826002811061365357613653614bd4565b6020020151515183613666836002614ba6565b600c811061367657613676614bd4565b602002015283826002811061368d5761368d614bd4565b60200201515160016020020151836136a6836003614ba6565b600c81106136b6576136b6614bd4565b60200201528382600281106136cd576136cd614bd4565b6020020151602001516000600281106136e8576136e8614bd4565b6020020151836136f9836004614ba6565b600c811061370957613709614bd4565b602002015283826002811061372057613720614bd4565b60200201516020015160016002811061373b5761373b614bd4565b60200201518361374c836005614ba6565b600c811061375c5761375c614bd4565b6020020152506001016135b2565b5061377361409e565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b60606000806137a5846139f6565b61ffff166001600160401b038111156137c0576137c0614110565b6040519080825280601f01601f1916602001820160405280156137ea576020820181803683370190505b5090506000805b825182108015613802575061010081105b15612e22576001811b935085841615613849578060f81b83838151811061382b5761382b614bd4565b60200101906001600160f81b031916908160001a9053508160010191505b61385281614cdc565b90506137f1565b6033546001600160a01b031633146120945760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610778565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061396f84613ded565b9050808360ff166001901b116139ed5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610778565b90505b92915050565b6000805b82156139f057613a0b600184614c0c565b9092169180613a19816151f2565b9150506139fa565b60408051808201909152600080825260208201526102008261ffff1610613a7d5760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610778565b8161ffff16600103613a905750816139f0565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613af957600161ffff871660ff83161c81169003613adc57613ad98484613399565b93505b613ae68384613399565b92506201fffe600192831b169101613aac565b509195945050505050565b60408051808201909152600080825260208201528151158015613b2957506020820151155b15613b47575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206152148339815191528460200151613b7a9190614bea565b613b9290600080516020615214833981519152614c0c565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613c5c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610778565b613c6582613b9f565b610b42816138b3565b600060208451613c7e9190614bea565b15613d055760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610778565b8260205b85518111610d1657613d1c600285614bea565b600003613d4057816000528086015160205260406000209150600284049350613d59565b8086015160005281602052604060002091506002840493505b613d64602082614ba6565b9050613d09565b60008080600080516020615214833981519152600360008051602061521483398151915286600080516020615214833981519152888909090890506000613de1827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615214833981519152613f75565b91959194509092505050565b600061010082511115613e765760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610778565b8151600003613e8757506000919050565b60008083600081518110613e9d57613e9d614bd4565b0160200151600160f89190911c81901b92505b8451811015613f6c57848181518110613ecb57613ecb614bd4565b0160200151600160f89190911c1b9150828211613f605760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610778565b91811791600101613eb0565b50909392505050565b600080613f8061409e565b613f886140bc565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fc557fe5b50826140135760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610778565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061406d6140da565b815260200161407a6140da565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613b9a57600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561414857614148614110565b60405290565b60405161010081016001600160401b038111828210171561414857614148614110565b604051601f8201601f191681016001600160401b038111828210171561419957614199614110565b604052919050565b6000806001600160401b038411156141bb576141bb614110565b50601f8301601f19166020016141d081614171565b9150508281528383830111156141e557600080fd5b828260208301376000602084830101529392505050565b600082601f83011261420d57600080fd5b61421c838335602085016141a1565b9392505050565b6001600160a01b038116811461100a57600080fd5b600080600080600080600080610100898b03121561425557600080fd5b88359750602089013596506040890135955061427360608a016140f8565b94506080890135935060a08901356001600160401b0381111561429557600080fd5b6142a18b828c016141fc565b93505060c0890135915060e08901356142b981614223565b809150509295985092959890939650565b6000604082840312156142dc57600080fd5b6142e4614126565b823581526020928301359281019290925250919050565b600082601f83011261430c57600080fd5b614314614126565b80604084018581111561432657600080fd5b845b81811015614340578035845260209384019301614328565b509095945050505050565b60006080828403121561435d57600080fd5b614365614126565b905061437183836142fb565b815261438083604084016142fb565b602082015292915050565b60008060008061012085870312156143a257600080fd5b843593506143b386602087016142ca565b92506143c2866060870161434b565b91506143d18660e087016142ca565b905092959194509250565b6000602082840312156143ee57600080fd5b5035919050565b60006020828403121561440757600080fd5b81356139ed81614223565b602080825282518282018190526000918401906040840190835b818110156143405783516001600160a01b031683526020938401939092019160010161442c565b801515811461100a57600080fd5b60006020828403121561447357600080fd5b81356139ed81614453565b803563ffffffff81168114613b9a57600080fd5b60006001600160401b038211156144ab576144ab614110565b5060051b60200190565b600082601f8301126144c657600080fd5b81356144d96144d482614492565b614171565b8082825260208201915060208360051b8601019250858311156144fb57600080fd5b602085015b8381101561451f576145118161447e565b835260209283019201614500565b5095945050505050565b600082601f83011261453a57600080fd5b81356145486144d482614492565b8082825260208201915060208360061b86010192508583111561456a57600080fd5b602085015b8381101561451f5761458187826142ca565b835260209092019160400161456f565b600082601f8301126145a257600080fd5b81356145b06144d482614492565b8082825260208201915060208360051b8601019250858311156145d257600080fd5b602085015b8381101561451f5780356001600160401b038111156145f557600080fd5b614604886020838a01016144b5565b845250602092830192016145d7565b6000610180828403121561462657600080fd5b61462e61414e565b905081356001600160401b0381111561464657600080fd5b614652848285016144b5565b82525060208201356001600160401b0381111561466e57600080fd5b61467a84828501614529565b60208301525060408201356001600160401b0381111561469957600080fd5b6146a584828501614529565b6040830152506146b8836060840161434b565b60608201526146ca8360e084016142ca565b60808201526101208201356001600160401b038111156146e957600080fd5b6146f5848285016144b5565b60a0830152506101408201356001600160401b0381111561471557600080fd5b614721848285016144b5565b60c0830152506101608201356001600160401b0381111561474157600080fd5b61474d84828501614591565b60e08301525092915050565b60008060006060848603121561476e57600080fd5b8335925061477e6020850161447e565b915060408401356001600160401b0381111561479957600080fd5b6147a586828701614613565b9150509250925092565b600081518084526020840193506020830160005b828110156147ea5781516001600160601b03168652602095860195909101906001016147c3565b5093949350505050565b604081526000835160408084015261480f60808401826147af565b90506020850151603f1984830301606085015261482c82826147af565b925050508260208301529392505050565b60008083601f84011261484f57600080fd5b5081356001600160401b0381111561486657600080fd5b60208301915083602082850101111561487e57600080fd5b9250929050565b60008060006040848603121561489a57600080fd5b83356001600160401b038111156148b057600080fd5b6148bc8682870161483d565b909790965060209590950135949350505050565b600080604083850312156148e357600080fd5b82356148ee81614223565b915060208301356001600160401b0381111561490957600080fd5b83016060818603121561491b57600080fd5b604051606081016001600160401b038111828210171561493d5761493d614110565b60405281356001600160401b0381111561495657600080fd5b614962878285016141fc565b8252506020828101359082015260409182013591810191909152919491935090915050565b60006020828403121561499957600080fd5b81356001600160401b038111156149af57600080fd5b8201601f810184136149c057600080fd5b6149cf848235602084016141a1565b949350505050565b6000806000606084860312156149ec57600080fd5b83359250602084013561477e81614223565b600080600060608486031215614a1357600080fd5b8335614a1e81614223565b92506020840135614a2e81614223565b91506040840135614a3e81614223565b809150509250925092565b60008060008060608587031215614a5f57600080fd5b8435935060208501356001600160401b03811115614a7c57600080fd5b614a888782880161483d565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614ab657600080fd5b873596506020880135955060408801359450614ad4606089016140f8565b93506080880135925060a08801356001600160401b03811115614af657600080fd5b614b028a828b016141fc565b979a969950949793969295929450505060c09091013590565b60008060208385031215614b2e57600080fd5b82356001600160401b03811115614b4457600080fd5b8301601f81018513614b5557600080fd5b80356001600160401b03811115614b6b57600080fd5b8560208260051b8401011115614b8057600080fd5b6020919091019590945092505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156139f0576139f0614b90565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614c0757634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156139f0576139f0614b90565b600060208284031215614c3157600080fd5b5051919050565b600060208284031215614c4a57600080fd5b81516001600160c01b03811681146139ed57600080fd5b600060208284031215614c7357600080fd5b815160ff811681146139ed57600080fd5b6001600160601b038116811461100a57600080fd5b60006040828403128015614cac57600080fd5b50614cb5614126565b8251614cc081614223565b81526020830151614cd081614c84565b60208201529392505050565b600060018201614cee57614cee614b90565b5060010190565b600060208284031215614d0757600080fd5b81516139ed81614223565b600060208284031215614d2457600080fd5b815167ffffffffffffffff19811681146139ed57600080fd5b600060208284031215614d4f57600080fd5b81516139ed81614c84565b6001600160601b0382811682821603908111156139f0576139f0614b90565b63ffffffff60e01b8360e01b16815260006004820183516020850160005b82811015614db5578151845260209384019390910190600101614d97565b50919695505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015614ebd57602081850181015186830182015201614ea1565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b0383168152604060208201526000825160606040840152614f0760a0840182614e97565b90506020840151606084015260408401516080840152809150509392505050565b60208152600061421c6020830184614e97565b6001600160601b038181168382160290811690818114614f5d57614f5d614b90565b5092915050565b80820281158282048414176139f0576139f0614b90565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b8881528760208201528660408201526001600160601b03198616606082015284608082015261010060a0820152600061500f610100830186614e97565b60c0830194909452506001600160a01b039190911660e0909101529695505050505050565b60006020828403121561504657600080fd5b81516139ed81614453565b60008235609e1983360301811261506757600080fd5b9190910192915050565b8035613b9a81614223565b81835260208301925060008160005b848110156147ea57813561509e81614223565b6001600160a01b0316865260208201356150b781614c84565b6001600160601b03166020870152604095860195919091019060010161508b565b6020808252810182905260006040600584901b830181019083018583609e1936839003015b878210156151e557868503603f19018452823581811261511c57600080fd5b8901803536829003601e1901811261513357600080fd5b81016020810190356001600160401b0381111561514f57600080fd5b8060061b360382131561516157600080fd5b60a0885261517360a08901828461507c565b91505061518260208301615071565b6001600160a01b03166020880152604082810135908801526151a66060830161447e565b63ffffffff1660608801526151bd6080830161447e565b63ffffffff8116608089015291509550506020938401939290920191600191909101906150fd565b5092979650505050505050565b600061ffff821661ffff810361520a5761520a614b90565b6001019291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a2646970667358221220f0c59c77b7d074bcdb7b19f8c2809464f2595d1d7275a6efdc21b02475ba3c0064736f6c634300081b00330000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","output":"0x6080604052600436106101fd5760003560e01c806395c6d6041161010d578063d66eaabd116100a0578063f474b5201161006f578063f474b520146106ab578063f9120af6146106d8578063fa534dc0146106f8578063fc299dee14610718578063fce36c7d1461073857600080fd5b8063d66eaabd1461062f578063df5cf72314610642578063e481af9d14610676578063f2fde38b1461068b57600080fd5b8063ab21739a116100dc578063ab21739a1461056b578063b099627e1461058b578063b98d0908146105f5578063c0c53b8b1461060f57600080fd5b806395c6d604146104eb5780639926ee7d1461050b578063a364f4da1461052b578063a98fb3551461054b57600080fd5b80634ae07c37116101905780636d14a9871161015f5780636d14a9871461042057806370a0823114610454578063715018a614610498578063800fb61f146104ad5780638da5cb5b146104cd57600080fd5b80634ae07c37146103575780635df459461461038557806368304835146103b95780636b3aa72e146103ed57600080fd5b80633bc28c8c116101cc5780633bc28c8c146102cc578063416c7e5e146102ec5780634223d5511461030c5780634a5bf6321461031f57600080fd5b806306045a9114610213578063171f1d5b146102485780632e1a7d4d1461027f57806333cfb7b71461029f57600080fd5b3661020e5761020c3334610758565b005b600080fd5b34801561021f57600080fd5b5061023361022e366004614238565b6107ed565b60405190151581526020015b60405180910390f35b34801561025457600080fd5b5061026861026336600461438b565b6108e4565b60408051921515835290151560208301520161023f565b34801561028b57600080fd5b5061020c61029a3660046143dc565b610a6e565b3480156102ab57600080fd5b506102bf6102ba3660046143f5565b610b46565b60405161023f9190614412565b3480156102d857600080fd5b5061020c6102e73660046143f5565b610ff9565b3480156102f857600080fd5b5061020c610307366004614461565b61100d565b61020c61031a3660046143f5565b611144565b34801561032b57600080fd5b5060cb5461033f906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b34801561036357600080fd5b50610377610372366004614759565b61114e565b60405161023f9291906147f4565b34801561039157600080fd5b5061033f7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b3480156103c557600080fd5b5061033f7f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b3480156103f957600080fd5b507f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f87570761033f565b34801561042c57600080fd5b5061033f7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b34801561046057600080fd5b5061048a61046f3660046143f5565b6001600160a01b0316600090815260ca602052604090205490565b60405190815260200161023f565b3480156104a457600080fd5b5061020c612082565b3480156104b957600080fd5b5061020c6104c83660046143f5565b612096565b3480156104d957600080fd5b506033546001600160a01b031661033f565b3480156104f757600080fd5b50610233610506366004614885565b612136565b34801561051757600080fd5b5061020c6105263660046148d0565b61215b565b34801561053757600080fd5b5061020c6105463660046143f5565b612227565b34801561055757600080fd5b5061020c610566366004614987565b6122ee565b34801561057757600080fd5b5061020c6105863660046149d7565b612342565b34801561059757600080fd5b506105d36105a63660046143dc565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff909416845291151560208401529082015260600161023f565b34801561060157600080fd5b506097546102339060ff1681565b34801561061b57600080fd5b5061020c61062a3660046149fe565b612701565b61020c61063d366004614a49565b6128c6565b34801561064e57600080fd5b5061033f7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561068257600080fd5b506102bf612a80565b34801561069757600080fd5b5061020c6106a63660046143f5565b612e2c565b3480156106b757600080fd5b5061048a6106c63660046143f5565b60ca6020526000908152604090205481565b3480156106e457600080fd5b5061020c6106f33660046143f5565b612ea2565b34801561070457600080fd5b50610233610713366004614a9b565b612ecc565b34801561072457600080fd5b5060655461033f906001600160a01b031681565b34801561074457600080fd5b5061020c610753366004614b1b565b612f41565b8060000361078157604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca6020526040812080548392906107a9908490614ba6565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a25050565b6000806001600160a01b038316610805575084610831565b8583604051602001610818929190614bb9565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff1690036108565760009150506108d8565b600081815260c96020526040902054640100000000900460ff1661087e5760009150506108d8565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f19818403018152919052805160208201209091506108d2878983896132f0565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018787600001518860200151886000015160006002811061092c5761092c614bd4565b60200201518951600160200201518a6020015160006002811061095157610951614bd4565b60200201518b6020015160016002811061096d5761096d614bd4565b602090810291909101518c518d8301516040516109ca9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6109ed9190614bea565b9050610a60610a066109ff8884613308565b8690613399565b610a0e61342e565b610a56610a4785610a41604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613308565b610a508c6134ee565b90613399565b886201d4c061357d565b909890975095505050505050565b33600090815260ca6020526040902054811115610abf5733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018390526044820152606401610778565b33600090815260ca602052604081208054839290610ade908490614c0c565b909155505033600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610b42573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16906313542a4e90602401602060405180830381865afa158015610bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd69190614c1f565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c169063871ef04990602401602060405180830381865afa158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c659190614c38565b90506001600160c01b0381161580610cff57507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190614c61565b60ff16155b15610d1f5760408051600080825260208201909252905b50949350505050565b6000610d33826001600160c01b0316613797565b90506000805b8251811015610dff577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b0316633ca5a5f5848381518110610d8357610d83614bd4565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610deb9190614c1f565b610df59083614ba6565b9150600101610d39565b506000816001600160401b03811115610e1a57610e1a614110565b604051908082528060200260200182016040528015610e43578160200160208202803683370190505b5090506000805b8451811015610fec576000858281518110610e6757610e67614bd4565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137781690633ca5a5f590602401602060405180830381865afa158015610edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f009190614c1f565b905060005b81811015610fe1576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa158015610f7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9e9190614c99565b60000151868681518110610fb457610fb4614bd4565b6001600160a01b039092166020928302919091019091015284610fd681614cdc565b955050600101610f05565b505050600101610e4a565b5090979650505050505050565b611001613859565b61100a816138b3565b50565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108f9190614cf5565b6001600160a01b0316336001600160a01b03161461113b5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610778565b61100a8161391c565b61100a8134610758565b604080518082019091526060808252602082015260008260400151516040518060400160405280600181526020016000815250511480156111aa57508260a0015151604051806040016040528060018152602001600081525051145b80156111d157508260c0015151604051806040016040528060018152602001600081525051145b80156111f857508260e0015151604051806040016040528060018152602001600081525051145b6112625760405162461bcd60e51b8152602060048201526041602482015260008051602061525483398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610778565b825151602084015151146112da5760405162461bcd60e51b815260206004820152604460248201819052600080516020615254833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610778565b4363ffffffff168463ffffffff16106113495760405162461bcd60e51b815260206004820152603c602482015260008051602061525483398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610778565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561140a5761140a614110565b604051908082528060200260200182016040528015611433578160200160208202803683370190505b5081526020860151516001600160401b0381111561145357611453614110565b60405190808252806020026020018201604052801561147c578160200160208202803683370190505b508160200181905250600061152860405180604001604052806001815260200160008152507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115239190614c61565b613963565b905060005b8760200151518110156117b9576115728860200151828151811061155357611553614bd4565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061158857611588614bd4565b602090810291909101015280156116485760208301516115a9600183614c0c565b815181106115b9576115b9614bd4565b602002602001015160001c836020015182815181106115da576115da614bd4565b602002602001015160001c11611648576040805162461bcd60e51b815260206004820152602481019190915260008051602061525483398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610778565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b03166304ec63518460200151838151811061168d5761168d614bd4565b60200260200101518b8b6000015185815181106116ac576116ac614bd4565b60200260200101516040518463ffffffff1660e01b81526004016116e99392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a9190614c38565b6001600160c01b03168360000151828151811061174957611749614bd4565b6020026020010181815250506117af6109ff611783848660000151858151811061177557611775614bd4565b6020026020010151166139f6565b8a60200151848151811061179957611799614bd4565b6020026020010151613a2190919063ffffffff16565b945060010161152d565b50506117c483613b04565b60975490935060ff166000816117db57600061185d565b7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc96001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185d9190614c1f565b905060005b604051806040016040528060018152602001600081525051811015611f535782156119ee578963ffffffff16827f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b031663249a0c42604051806040016040528060018152602001600081525085815181106118e6576118e6614bd4565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561192a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194e9190614c1f565b6119589190614ba6565b116119ee5760405162461bcd60e51b8152602060048201526066602482015260008051602061525483398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610778565b7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611a4557611a45614bd4565b602001015160f81c60f81b60f81c8c8c60a001518581518110611a6a57611a6a614bd4565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aea9190614d12565b6001600160401b031916611b0d8a60400151838151811061155357611553614bd4565b67ffffffffffffffff191614611ba95760405162461bcd60e51b8152602060048201526061602482015260008051602061525483398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610778565b611bd989604001518281518110611bc257611bc2614bd4565b60200260200101518761339990919063ffffffff16565b95507f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611c3257611c32614bd4565b602001015160f81c60f81b60f81c8c8c60c001518581518110611c5757611c57614bd4565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd79190614d3d565b85602001518281518110611ced57611ced614bd4565b6001600160601b03909216602092830291909101820152850151805182908110611d1957611d19614bd4565b602002602001015185600001518281518110611d3757611d37614bd4565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611f4957611dc686600001518281518110611d8157611d81614bd4565b602002602001015160405180604001604052806001815260200160008152508581518110611db157611db1614bd4565b016020015160f81c60ff161c60019081161490565b15611f41577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611e2257611e22614bd4565b602001015160f81c60f81b60f81c8e89602001518581518110611e4757611e47614bd4565b60200260200101518f60e001518881518110611e6557611e65614bd4565b60200260200101518781518110611e7e57611e7e614bd4565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f069190614d3d565b8751805185908110611f1a57611f1a614bd4565b60200260200101818151611f2e9190614d5a565b6001600160601b03169052506001909101905b600101611d5b565b5050600101611862565b505050600080611f6d8a868a606001518b608001516108e4565b9150915081611fde5760405162461bcd60e51b8152602060048201526043602482015260008051602061525483398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610778565b8061203f5760405162461bcd60e51b8152602060048201526039602482015260008051602061525483398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610778565b5050600087826020015160405160200161205a929190614d79565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b61208a613859565b6120946000613b9f565b565b600054600290610100900460ff161580156120b8575060005460ff8083169116105b6120d45760405162461bcd60e51b815260040161077890614dc1565b6000805461ffff191660ff8316176101001790556120f182612ea2565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000818484604051612149929190614e0f565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146121a35760405162461bcd60e51b815260040161077890614e1f565b604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757071690639926ee7d906121f19085908590600401614edd565b600060405180830381600087803b15801561220b57600080fd5b505af115801561221f573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461226f5760405162461bcd60e51b815260040161077890614e1f565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a364f4da906024015b600060405180830381600087803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b5050505050565b6122f6613859565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a98fb355906122b9908490600401614f28565b60cb546001600160a01b031633146123825760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610778565b60005a90506000848460405160200161239c929190614bb9565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff90911690036123f1576040516311cb69a760e11b815260048101839052602401610778565b8054640100000000900460ff161561241f57604051634e78d7f960e11b815260048101839052602401610778565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca602052604090205410156124a25760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610778565b80546000906124b990849063ffffffff168761114e565b509050604360ff1681602001516000815181106124d8576124d8614bd4565b60200260200101516124ea9190614f3b565b6001600160601b03166064826000015160008151811061250c5761250c614bd4565b60200260200101516001600160601b03166125279190614f64565b10156125ba576064816000015160008151811061254657612546614bd4565b60200260200101516001600160601b03166125619190614f64565b604360ff16826020015160008151811061257d5761257d614bd4565b602002602001015161258f9190614f3b565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610778565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a6126069087614c0c565b6126139062011170614ba6565b61261d9190614f64565b9050826001015481111561265457600183015460405163437e283f60e11b8152600481019190915260248101829052604401610778565b6001600160a01b038716600090815260ca60205260408120805483929061267c908490614c0c565b90915550506001600160a01b038716600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156126f6573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff16158080156127215750600054600160ff909116105b8061273b5750303b15801561273b575060005460ff166001145b6127575760405162461bcd60e51b815260040161077890614dc1565b6000805460ff19166001179055801561277a576000805461ff0019166101001790555b6001600160a01b0384166127c057604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610778565b6001600160a01b03831661280a57604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610778565b6001600160a01b03821661285557604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610778565b61285f8484613bf1565b60cb80546001600160a01b0319166001600160a01b03841617905580156128c0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600084336040516020016128db929190614bb9565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff161561292a57604051630c40bc4360e21b815260048101829052602401610778565b34156129875733600090815260ca60205260408120805434929061294f908490614ba6565b909155505033600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a25b33600090815260ca60205260409020548211156129d85733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610778565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612a70913391908a908a908a90614f7b565b60405180910390a2505050505050565b606060007f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b069190614c61565b60ff16905080600003612b2757505060408051600081526020810190915290565b6000805b82811015612bd257604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbe9190614c1f565b612bc89083614ba6565b9150600101612b2b565b506000816001600160401b03811115612bed57612bed614110565b604051908082528060200260200182016040528015612c16578160200160208202803683370190505b5090506000805b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f9190614c61565b60ff16811015612e2257604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d379190614c1f565b905060005b81811015612e18576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa158015612db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd59190614c99565b60000151858581518110612deb57612deb614bd4565b6001600160a01b039092166020928302919091019091015283612e0d81614cdc565b945050600101612d3c565b5050600101612c1d565b5090949350505050565b612e34613859565b6001600160a01b038116612e995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610778565b61100a81613b9f565b612eaa613859565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190612f00908b908b908b908b908b908b908b908b90600401614fd2565b602060405180830381865afa158015612f1d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d89190615034565b6065546001600160a01b03163314612fd65760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610778565b60005b818110156132a157828282818110612ff357612ff3614bd4565b90506020028101906130059190615051565b6130169060408101906020016143f5565b6001600160a01b03166323b872dd333086868681811061303857613038614bd4565b905060200281019061304a9190615051565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156130a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c59190615034565b5060008383838181106130da576130da614bd4565b90506020028101906130ec9190615051565b6130fd9060408101906020016143f5565b604051636eb1769f60e11b81523060048201526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f81166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561316b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318f9190614c1f565b90508383838181106131a3576131a3614bd4565b90506020028101906131b59190615051565b6131c69060408101906020016143f5565b6001600160a01b031663095ea7b37f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f8387878781811061320857613208614bd4565b905060200281019061321a9190615051565b604001356132289190614ba6565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132979190615034565b5050600101612fd9565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f169063fce36c7d906121f190859085906004016150d8565b6000836132fe868585613c6e565b1495945050505050565b604080518082019091526000808252602082015261332461401e565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061335357fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610778565b505092915050565b60408051808201909152600080825260208201526133b561403c565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806133f057fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610778565b61343661405a565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201909152600080825260208201526000808061351e60008051602061521483398151915286614bea565b90505b61352a81613d6b565b90935091506000805160206152148339815191528283098303613563576040805180820190915290815260208101919091529392505050565b600080516020615214833981519152600182089050613521565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906135af61407f565b60005b600281101561376a5760006135c8826006614f64565b90508482600281106135dc576135dc614bd4565b602002015151836135ee836000614ba6565b600c81106135fe576135fe614bd4565b602002015284826002811061361557613615614bd4565b6020020151602001518382600161362c9190614ba6565b600c811061363c5761363c614bd4565b602002015283826002811061365357613653614bd4565b6020020151515183613666836002614ba6565b600c811061367657613676614bd4565b602002015283826002811061368d5761368d614bd4565b60200201515160016020020151836136a6836003614ba6565b600c81106136b6576136b6614bd4565b60200201528382600281106136cd576136cd614bd4565b6020020151602001516000600281106136e8576136e8614bd4565b6020020151836136f9836004614ba6565b600c811061370957613709614bd4565b602002015283826002811061372057613720614bd4565b60200201516020015160016002811061373b5761373b614bd4565b60200201518361374c836005614ba6565b600c811061375c5761375c614bd4565b6020020152506001016135b2565b5061377361409e565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b60606000806137a5846139f6565b61ffff166001600160401b038111156137c0576137c0614110565b6040519080825280601f01601f1916602001820160405280156137ea576020820181803683370190505b5090506000805b825182108015613802575061010081105b15612e22576001811b935085841615613849578060f81b83838151811061382b5761382b614bd4565b60200101906001600160f81b031916908160001a9053508160010191505b61385281614cdc565b90506137f1565b6033546001600160a01b031633146120945760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610778565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061396f84613ded565b9050808360ff166001901b116139ed5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610778565b90505b92915050565b6000805b82156139f057613a0b600184614c0c565b9092169180613a19816151f2565b9150506139fa565b60408051808201909152600080825260208201526102008261ffff1610613a7d5760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610778565b8161ffff16600103613a905750816139f0565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613af957600161ffff871660ff83161c81169003613adc57613ad98484613399565b93505b613ae68384613399565b92506201fffe600192831b169101613aac565b509195945050505050565b60408051808201909152600080825260208201528151158015613b2957506020820151155b15613b47575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206152148339815191528460200151613b7a9190614bea565b613b9290600080516020615214833981519152614c0c565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613c5c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610778565b613c6582613b9f565b610b42816138b3565b600060208451613c7e9190614bea565b15613d055760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610778565b8260205b85518111610d1657613d1c600285614bea565b600003613d4057816000528086015160205260406000209150600284049350613d59565b8086015160005281602052604060002091506002840493505b613d64602082614ba6565b9050613d09565b60008080600080516020615214833981519152600360008051602061521483398151915286600080516020615214833981519152888909090890506000613de1827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615214833981519152613f75565b91959194509092505050565b600061010082511115613e765760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610778565b8151600003613e8757506000919050565b60008083600081518110613e9d57613e9d614bd4565b0160200151600160f89190911c81901b92505b8451811015613f6c57848181518110613ecb57613ecb614bd4565b0160200151600160f89190911c1b9150828211613f605760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610778565b91811791600101613eb0565b50909392505050565b600080613f8061409e565b613f886140bc565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fc557fe5b50826140135760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610778565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061406d6140da565b815260200161407a6140da565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613b9a57600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561414857614148614110565b60405290565b60405161010081016001600160401b038111828210171561414857614148614110565b604051601f8201601f191681016001600160401b038111828210171561419957614199614110565b604052919050565b6000806001600160401b038411156141bb576141bb614110565b50601f8301601f19166020016141d081614171565b9150508281528383830111156141e557600080fd5b828260208301376000602084830101529392505050565b600082601f83011261420d57600080fd5b61421c838335602085016141a1565b9392505050565b6001600160a01b038116811461100a57600080fd5b600080600080600080600080610100898b03121561425557600080fd5b88359750602089013596506040890135955061427360608a016140f8565b94506080890135935060a08901356001600160401b0381111561429557600080fd5b6142a18b828c016141fc565b93505060c0890135915060e08901356142b981614223565b809150509295985092959890939650565b6000604082840312156142dc57600080fd5b6142e4614126565b823581526020928301359281019290925250919050565b600082601f83011261430c57600080fd5b614314614126565b80604084018581111561432657600080fd5b845b81811015614340578035845260209384019301614328565b509095945050505050565b60006080828403121561435d57600080fd5b614365614126565b905061437183836142fb565b815261438083604084016142fb565b602082015292915050565b60008060008061012085870312156143a257600080fd5b843593506143b386602087016142ca565b92506143c2866060870161434b565b91506143d18660e087016142ca565b905092959194509250565b6000602082840312156143ee57600080fd5b5035919050565b60006020828403121561440757600080fd5b81356139ed81614223565b602080825282518282018190526000918401906040840190835b818110156143405783516001600160a01b031683526020938401939092019160010161442c565b801515811461100a57600080fd5b60006020828403121561447357600080fd5b81356139ed81614453565b803563ffffffff81168114613b9a57600080fd5b60006001600160401b038211156144ab576144ab614110565b5060051b60200190565b600082601f8301126144c657600080fd5b81356144d96144d482614492565b614171565b8082825260208201915060208360051b8601019250858311156144fb57600080fd5b602085015b8381101561451f576145118161447e565b835260209283019201614500565b5095945050505050565b600082601f83011261453a57600080fd5b81356145486144d482614492565b8082825260208201915060208360061b86010192508583111561456a57600080fd5b602085015b8381101561451f5761458187826142ca565b835260209092019160400161456f565b600082601f8301126145a257600080fd5b81356145b06144d482614492565b8082825260208201915060208360051b8601019250858311156145d257600080fd5b602085015b8381101561451f5780356001600160401b038111156145f557600080fd5b614604886020838a01016144b5565b845250602092830192016145d7565b6000610180828403121561462657600080fd5b61462e61414e565b905081356001600160401b0381111561464657600080fd5b614652848285016144b5565b82525060208201356001600160401b0381111561466e57600080fd5b61467a84828501614529565b60208301525060408201356001600160401b0381111561469957600080fd5b6146a584828501614529565b6040830152506146b8836060840161434b565b60608201526146ca8360e084016142ca565b60808201526101208201356001600160401b038111156146e957600080fd5b6146f5848285016144b5565b60a0830152506101408201356001600160401b0381111561471557600080fd5b614721848285016144b5565b60c0830152506101608201356001600160401b0381111561474157600080fd5b61474d84828501614591565b60e08301525092915050565b60008060006060848603121561476e57600080fd5b8335925061477e6020850161447e565b915060408401356001600160401b0381111561479957600080fd5b6147a586828701614613565b9150509250925092565b600081518084526020840193506020830160005b828110156147ea5781516001600160601b03168652602095860195909101906001016147c3565b5093949350505050565b604081526000835160408084015261480f60808401826147af565b90506020850151603f1984830301606085015261482c82826147af565b925050508260208301529392505050565b60008083601f84011261484f57600080fd5b5081356001600160401b0381111561486657600080fd5b60208301915083602082850101111561487e57600080fd5b9250929050565b60008060006040848603121561489a57600080fd5b83356001600160401b038111156148b057600080fd5b6148bc8682870161483d565b909790965060209590950135949350505050565b600080604083850312156148e357600080fd5b82356148ee81614223565b915060208301356001600160401b0381111561490957600080fd5b83016060818603121561491b57600080fd5b604051606081016001600160401b038111828210171561493d5761493d614110565b60405281356001600160401b0381111561495657600080fd5b614962878285016141fc565b8252506020828101359082015260409182013591810191909152919491935090915050565b60006020828403121561499957600080fd5b81356001600160401b038111156149af57600080fd5b8201601f810184136149c057600080fd5b6149cf848235602084016141a1565b949350505050565b6000806000606084860312156149ec57600080fd5b83359250602084013561477e81614223565b600080600060608486031215614a1357600080fd5b8335614a1e81614223565b92506020840135614a2e81614223565b91506040840135614a3e81614223565b809150509250925092565b60008060008060608587031215614a5f57600080fd5b8435935060208501356001600160401b03811115614a7c57600080fd5b614a888782880161483d565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614ab657600080fd5b873596506020880135955060408801359450614ad4606089016140f8565b93506080880135925060a08801356001600160401b03811115614af657600080fd5b614b028a828b016141fc565b979a969950949793969295929450505060c09091013590565b60008060208385031215614b2e57600080fd5b82356001600160401b03811115614b4457600080fd5b8301601f81018513614b5557600080fd5b80356001600160401b03811115614b6b57600080fd5b8560208260051b8401011115614b8057600080fd5b6020919091019590945092505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156139f0576139f0614b90565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614c0757634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156139f0576139f0614b90565b600060208284031215614c3157600080fd5b5051919050565b600060208284031215614c4a57600080fd5b81516001600160c01b03811681146139ed57600080fd5b600060208284031215614c7357600080fd5b815160ff811681146139ed57600080fd5b6001600160601b038116811461100a57600080fd5b60006040828403128015614cac57600080fd5b50614cb5614126565b8251614cc081614223565b81526020830151614cd081614c84565b60208201529392505050565b600060018201614cee57614cee614b90565b5060010190565b600060208284031215614d0757600080fd5b81516139ed81614223565b600060208284031215614d2457600080fd5b815167ffffffffffffffff19811681146139ed57600080fd5b600060208284031215614d4f57600080fd5b81516139ed81614c84565b6001600160601b0382811682821603908111156139f0576139f0614b90565b63ffffffff60e01b8360e01b16815260006004820183516020850160005b82811015614db5578151845260209384019390910190600101614d97565b50919695505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015614ebd57602081850181015186830182015201614ea1565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b0383168152604060208201526000825160606040840152614f0760a0840182614e97565b90506020840151606084015260408401516080840152809150509392505050565b60208152600061421c6020830184614e97565b6001600160601b038181168382160290811690818114614f5d57614f5d614b90565b5092915050565b80820281158282048414176139f0576139f0614b90565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b8881528760208201528660408201526001600160601b03198616606082015284608082015261010060a0820152600061500f610100830186614e97565b60c0830194909452506001600160a01b039190911660e0909101529695505050505050565b60006020828403121561504657600080fd5b81516139ed81614453565b60008235609e1983360301811261506757600080fd5b9190910192915050565b8035613b9a81614223565b81835260208301925060008160005b848110156147ea57813561509e81614223565b6001600160a01b0316865260208201356150b781614c84565b6001600160601b03166020870152604095860195919091019060010161508b565b6020808252810182905260006040600584901b830181019083018583609e1936839003015b878210156151e557868503603f19018452823581811261511c57600080fd5b8901803536829003601e1901811261513357600080fd5b81016020810190356001600160401b0381111561514f57600080fd5b8060061b360382131561516157600080fd5b60a0885261517360a08901828461507c565b91505061518260208301615071565b6001600160a01b03166020880152604082810135908801526151a66060830161447e565b63ffffffff1660608801526151bd6080830161447e565b63ffffffff8116608089015291509550506020938401939290920191600191909101906150fd565b5092979650505050505050565b600061ffff821661ffff810361520a5761520a614b90565b6001019291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a2646970667358221220f0c59c77b7d074bcdb7b19f8c2809464f2595d1d7275a6efdc21b02475ba3c0064736f6c634300081b0033","gas_used":4284917,"gas_limit":5688038,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0},{"Call":1},{"Call":2}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x809d550fca64d94bd9f66e60752a544199cfac3d","address":"0x851356ae760d987e095750cceb3bc6014560891c","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0x68304835","output":"0x00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","gas_used":7645,"gas_limit":5572689,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x68304835","output":"0x00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","gas_used":350,"gas_limit":5478476,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]},{"parent":0,"children":[4],"idx":3,"trace":{"depth":1,"success":true,"caller":"0x809d550fca64d94bd9f66e60752a544199cfac3d","address":"0x851356ae760d987e095750cceb3bc6014560891c","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0x5df45946","output":"0x000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e","gas_used":1101,"gas_limit":5564697,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":3,"children":[],"idx":4,"trace":{"depth":2,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x5df45946","output":"0x000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e","gas_used":306,"gas_limit":5477007,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]},{"parent":0,"children":[6],"idx":5,"trace":{"depth":1,"success":true,"caller":"0x809d550fca64d94bd9f66e60752a544199cfac3d","address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0xdf5cf723","output":"0x000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","gas_used":7622,"gas_limit":5560683,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":5,"children":[],"idx":6,"trace":{"depth":2,"success":true,"caller":"0x95401dc811bb5740090279ba06cfa8fcf6113778","address":"0x99bba657f2bbc93c02d617f8ba121cb8fc104acf","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xdf5cf723","output":"0x000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","gas_used":327,"gas_limit":5466657,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x6080604052600436106101fd5760003560e01c806395c6d6041161010d578063d66eaabd116100a0578063f474b5201161006f578063f474b520146106ab578063f9120af6146106d8578063fa534dc0146106f8578063fc299dee14610718578063fce36c7d1461073857600080fd5b8063d66eaabd1461062f578063df5cf72314610642578063e481af9d14610676578063f2fde38b1461068b57600080fd5b8063ab21739a116100dc578063ab21739a1461056b578063b099627e1461058b578063b98d0908146105f5578063c0c53b8b1461060f57600080fd5b806395c6d604146104eb5780639926ee7d1461050b578063a364f4da1461052b578063a98fb3551461054b57600080fd5b80634ae07c37116101905780636d14a9871161015f5780636d14a9871461042057806370a0823114610454578063715018a614610498578063800fb61f146104ad5780638da5cb5b146104cd57600080fd5b80634ae07c37146103575780635df459461461038557806368304835146103b95780636b3aa72e146103ed57600080fd5b80633bc28c8c116101cc5780633bc28c8c146102cc578063416c7e5e146102ec5780634223d5511461030c5780634a5bf6321461031f57600080fd5b806306045a9114610213578063171f1d5b146102485780632e1a7d4d1461027f57806333cfb7b71461029f57600080fd5b3661020e5761020c3334610758565b005b600080fd5b34801561021f57600080fd5b5061023361022e366004614238565b6107ed565b60405190151581526020015b60405180910390f35b34801561025457600080fd5b5061026861026336600461438b565b6108e4565b60408051921515835290151560208301520161023f565b34801561028b57600080fd5b5061020c61029a3660046143dc565b610a6e565b3480156102ab57600080fd5b506102bf6102ba3660046143f5565b610b46565b60405161023f9190614412565b3480156102d857600080fd5b5061020c6102e73660046143f5565b610ff9565b3480156102f857600080fd5b5061020c610307366004614461565b61100d565b61020c61031a3660046143f5565b611144565b34801561032b57600080fd5b5060cb5461033f906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b34801561036357600080fd5b50610377610372366004614759565b61114e565b60405161023f9291906147f4565b34801561039157600080fd5b5061033f7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b3480156103c557600080fd5b5061033f7f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b3480156103f957600080fd5b507f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f87570761033f565b34801561042c57600080fd5b5061033f7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b34801561046057600080fd5b5061048a61046f3660046143f5565b6001600160a01b0316600090815260ca602052604090205490565b60405190815260200161023f565b3480156104a457600080fd5b5061020c612082565b3480156104b957600080fd5b5061020c6104c83660046143f5565b612096565b3480156104d957600080fd5b506033546001600160a01b031661033f565b3480156104f757600080fd5b50610233610506366004614885565b612136565b34801561051757600080fd5b5061020c6105263660046148d0565b61215b565b34801561053757600080fd5b5061020c6105463660046143f5565b612227565b34801561055757600080fd5b5061020c610566366004614987565b6122ee565b34801561057757600080fd5b5061020c6105863660046149d7565b612342565b34801561059757600080fd5b506105d36105a63660046143dc565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff909416845291151560208401529082015260600161023f565b34801561060157600080fd5b506097546102339060ff1681565b34801561061b57600080fd5b5061020c61062a3660046149fe565b612701565b61020c61063d366004614a49565b6128c6565b34801561064e57600080fd5b5061033f7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561068257600080fd5b506102bf612a80565b34801561069757600080fd5b5061020c6106a63660046143f5565b612e2c565b3480156106b757600080fd5b5061048a6106c63660046143f5565b60ca6020526000908152604090205481565b3480156106e457600080fd5b5061020c6106f33660046143f5565b612ea2565b34801561070457600080fd5b50610233610713366004614a9b565b612ecc565b34801561072457600080fd5b5060655461033f906001600160a01b031681565b34801561074457600080fd5b5061020c610753366004614b1b565b612f41565b8060000361078157604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca6020526040812080548392906107a9908490614ba6565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a25050565b6000806001600160a01b038316610805575084610831565b8583604051602001610818929190614bb9565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff1690036108565760009150506108d8565b600081815260c96020526040902054640100000000900460ff1661087e5760009150506108d8565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f19818403018152919052805160208201209091506108d2878983896132f0565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018787600001518860200151886000015160006002811061092c5761092c614bd4565b60200201518951600160200201518a6020015160006002811061095157610951614bd4565b60200201518b6020015160016002811061096d5761096d614bd4565b602090810291909101518c518d8301516040516109ca9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6109ed9190614bea565b9050610a60610a066109ff8884613308565b8690613399565b610a0e61342e565b610a56610a4785610a41604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613308565b610a508c6134ee565b90613399565b886201d4c061357d565b909890975095505050505050565b33600090815260ca6020526040902054811115610abf5733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018390526044820152606401610778565b33600090815260ca602052604081208054839290610ade908490614c0c565b909155505033600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610b42573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16906313542a4e90602401602060405180830381865afa158015610bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd69190614c1f565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c169063871ef04990602401602060405180830381865afa158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c659190614c38565b90506001600160c01b0381161580610cff57507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190614c61565b60ff16155b15610d1f5760408051600080825260208201909252905b50949350505050565b6000610d33826001600160c01b0316613797565b90506000805b8251811015610dff577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b0316633ca5a5f5848381518110610d8357610d83614bd4565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610deb9190614c1f565b610df59083614ba6565b9150600101610d39565b506000816001600160401b03811115610e1a57610e1a614110565b604051908082528060200260200182016040528015610e43578160200160208202803683370190505b5090506000805b8451811015610fec576000858281518110610e6757610e67614bd4565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137781690633ca5a5f590602401602060405180830381865afa158015610edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f009190614c1f565b905060005b81811015610fe1576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa158015610f7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9e9190614c99565b60000151868681518110610fb457610fb4614bd4565b6001600160a01b039092166020928302919091019091015284610fd681614cdc565b955050600101610f05565b505050600101610e4a565b5090979650505050505050565b611001613859565b61100a816138b3565b50565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108f9190614cf5565b6001600160a01b0316336001600160a01b03161461113b5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610778565b61100a8161391c565b61100a8134610758565b604080518082019091526060808252602082015260008260400151516040518060400160405280600181526020016000815250511480156111aa57508260a0015151604051806040016040528060018152602001600081525051145b80156111d157508260c0015151604051806040016040528060018152602001600081525051145b80156111f857508260e0015151604051806040016040528060018152602001600081525051145b6112625760405162461bcd60e51b8152602060048201526041602482015260008051602061525483398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610778565b825151602084015151146112da5760405162461bcd60e51b815260206004820152604460248201819052600080516020615254833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610778565b4363ffffffff168463ffffffff16106113495760405162461bcd60e51b815260206004820152603c602482015260008051602061525483398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610778565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561140a5761140a614110565b604051908082528060200260200182016040528015611433578160200160208202803683370190505b5081526020860151516001600160401b0381111561145357611453614110565b60405190808252806020026020018201604052801561147c578160200160208202803683370190505b508160200181905250600061152860405180604001604052806001815260200160008152507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115239190614c61565b613963565b905060005b8760200151518110156117b9576115728860200151828151811061155357611553614bd4565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061158857611588614bd4565b602090810291909101015280156116485760208301516115a9600183614c0c565b815181106115b9576115b9614bd4565b602002602001015160001c836020015182815181106115da576115da614bd4565b602002602001015160001c11611648576040805162461bcd60e51b815260206004820152602481019190915260008051602061525483398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610778565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b03166304ec63518460200151838151811061168d5761168d614bd4565b60200260200101518b8b6000015185815181106116ac576116ac614bd4565b60200260200101516040518463ffffffff1660e01b81526004016116e99392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a9190614c38565b6001600160c01b03168360000151828151811061174957611749614bd4565b6020026020010181815250506117af6109ff611783848660000151858151811061177557611775614bd4565b6020026020010151166139f6565b8a60200151848151811061179957611799614bd4565b6020026020010151613a2190919063ffffffff16565b945060010161152d565b50506117c483613b04565b60975490935060ff166000816117db57600061185d565b7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc96001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185d9190614c1f565b905060005b604051806040016040528060018152602001600081525051811015611f535782156119ee578963ffffffff16827f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b031663249a0c42604051806040016040528060018152602001600081525085815181106118e6576118e6614bd4565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561192a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194e9190614c1f565b6119589190614ba6565b116119ee5760405162461bcd60e51b8152602060048201526066602482015260008051602061525483398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610778565b7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611a4557611a45614bd4565b602001015160f81c60f81b60f81c8c8c60a001518581518110611a6a57611a6a614bd4565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aea9190614d12565b6001600160401b031916611b0d8a60400151838151811061155357611553614bd4565b67ffffffffffffffff191614611ba95760405162461bcd60e51b8152602060048201526061602482015260008051602061525483398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610778565b611bd989604001518281518110611bc257611bc2614bd4565b60200260200101518761339990919063ffffffff16565b95507f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611c3257611c32614bd4565b602001015160f81c60f81b60f81c8c8c60c001518581518110611c5757611c57614bd4565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd79190614d3d565b85602001518281518110611ced57611ced614bd4565b6001600160601b03909216602092830291909101820152850151805182908110611d1957611d19614bd4565b602002602001015185600001518281518110611d3757611d37614bd4565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611f4957611dc686600001518281518110611d8157611d81614bd4565b602002602001015160405180604001604052806001815260200160008152508581518110611db157611db1614bd4565b016020015160f81c60ff161c60019081161490565b15611f41577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611e2257611e22614bd4565b602001015160f81c60f81b60f81c8e89602001518581518110611e4757611e47614bd4565b60200260200101518f60e001518881518110611e6557611e65614bd4565b60200260200101518781518110611e7e57611e7e614bd4565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f069190614d3d565b8751805185908110611f1a57611f1a614bd4565b60200260200101818151611f2e9190614d5a565b6001600160601b03169052506001909101905b600101611d5b565b5050600101611862565b505050600080611f6d8a868a606001518b608001516108e4565b9150915081611fde5760405162461bcd60e51b8152602060048201526043602482015260008051602061525483398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610778565b8061203f5760405162461bcd60e51b8152602060048201526039602482015260008051602061525483398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610778565b5050600087826020015160405160200161205a929190614d79565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b61208a613859565b6120946000613b9f565b565b600054600290610100900460ff161580156120b8575060005460ff8083169116105b6120d45760405162461bcd60e51b815260040161077890614dc1565b6000805461ffff191660ff8316176101001790556120f182612ea2565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000818484604051612149929190614e0f565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146121a35760405162461bcd60e51b815260040161077890614e1f565b604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757071690639926ee7d906121f19085908590600401614edd565b600060405180830381600087803b15801561220b57600080fd5b505af115801561221f573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461226f5760405162461bcd60e51b815260040161077890614e1f565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a364f4da906024015b600060405180830381600087803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b5050505050565b6122f6613859565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a98fb355906122b9908490600401614f28565b60cb546001600160a01b031633146123825760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610778565b60005a90506000848460405160200161239c929190614bb9565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff90911690036123f1576040516311cb69a760e11b815260048101839052602401610778565b8054640100000000900460ff161561241f57604051634e78d7f960e11b815260048101839052602401610778565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca602052604090205410156124a25760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610778565b80546000906124b990849063ffffffff168761114e565b509050604360ff1681602001516000815181106124d8576124d8614bd4565b60200260200101516124ea9190614f3b565b6001600160601b03166064826000015160008151811061250c5761250c614bd4565b60200260200101516001600160601b03166125279190614f64565b10156125ba576064816000015160008151811061254657612546614bd4565b60200260200101516001600160601b03166125619190614f64565b604360ff16826020015160008151811061257d5761257d614bd4565b602002602001015161258f9190614f3b565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610778565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a6126069087614c0c565b6126139062011170614ba6565b61261d9190614f64565b9050826001015481111561265457600183015460405163437e283f60e11b8152600481019190915260248101829052604401610778565b6001600160a01b038716600090815260ca60205260408120805483929061267c908490614c0c565b90915550506001600160a01b038716600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156126f6573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff16158080156127215750600054600160ff909116105b8061273b5750303b15801561273b575060005460ff166001145b6127575760405162461bcd60e51b815260040161077890614dc1565b6000805460ff19166001179055801561277a576000805461ff0019166101001790555b6001600160a01b0384166127c057604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610778565b6001600160a01b03831661280a57604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610778565b6001600160a01b03821661285557604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610778565b61285f8484613bf1565b60cb80546001600160a01b0319166001600160a01b03841617905580156128c0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600084336040516020016128db929190614bb9565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff161561292a57604051630c40bc4360e21b815260048101829052602401610778565b34156129875733600090815260ca60205260408120805434929061294f908490614ba6565b909155505033600081815260ca6020908152604091829020549151918252600080516020615234833981519152910160405180910390a25b33600090815260ca60205260409020548211156129d85733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610778565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612a70913391908a908a908a90614f7b565b60405180910390a2505050505050565b606060007f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b069190614c61565b60ff16905080600003612b2757505060408051600081526020810190915290565b6000805b82811015612bd257604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbe9190614c1f565b612bc89083614ba6565b9150600101612b2b565b506000816001600160401b03811115612bed57612bed614110565b604051908082528060200260200182016040528015612c16578160200160208202803683370190505b5090506000805b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f9190614c61565b60ff16811015612e2257604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d379190614c1f565b905060005b81811015612e18576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa158015612db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd59190614c99565b60000151858581518110612deb57612deb614bd4565b6001600160a01b039092166020928302919091019091015283612e0d81614cdc565b945050600101612d3c565b5050600101612c1d565b5090949350505050565b612e34613859565b6001600160a01b038116612e995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610778565b61100a81613b9f565b612eaa613859565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190612f00908b908b908b908b908b908b908b908b90600401614fd2565b602060405180830381865afa158015612f1d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d89190615034565b6065546001600160a01b03163314612fd65760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610778565b60005b818110156132a157828282818110612ff357612ff3614bd4565b90506020028101906130059190615051565b6130169060408101906020016143f5565b6001600160a01b03166323b872dd333086868681811061303857613038614bd4565b905060200281019061304a9190615051565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156130a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c59190615034565b5060008383838181106130da576130da614bd4565b90506020028101906130ec9190615051565b6130fd9060408101906020016143f5565b604051636eb1769f60e11b81523060048201526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f81166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561316b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318f9190614c1f565b90508383838181106131a3576131a3614bd4565b90506020028101906131b59190615051565b6131c69060408101906020016143f5565b6001600160a01b031663095ea7b37f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f8387878781811061320857613208614bd4565b905060200281019061321a9190615051565b604001356132289190614ba6565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132979190615034565b5050600101612fd9565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f169063fce36c7d906121f190859085906004016150d8565b6000836132fe868585613c6e565b1495945050505050565b604080518082019091526000808252602082015261332461401e565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061335357fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610778565b505092915050565b60408051808201909152600080825260208201526133b561403c565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806133f057fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610778565b61343661405a565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201909152600080825260208201526000808061351e60008051602061521483398151915286614bea565b90505b61352a81613d6b565b90935091506000805160206152148339815191528283098303613563576040805180820190915290815260208101919091529392505050565b600080516020615214833981519152600182089050613521565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906135af61407f565b60005b600281101561376a5760006135c8826006614f64565b90508482600281106135dc576135dc614bd4565b602002015151836135ee836000614ba6565b600c81106135fe576135fe614bd4565b602002015284826002811061361557613615614bd4565b6020020151602001518382600161362c9190614ba6565b600c811061363c5761363c614bd4565b602002015283826002811061365357613653614bd4565b6020020151515183613666836002614ba6565b600c811061367657613676614bd4565b602002015283826002811061368d5761368d614bd4565b60200201515160016020020151836136a6836003614ba6565b600c81106136b6576136b6614bd4565b60200201528382600281106136cd576136cd614bd4565b6020020151602001516000600281106136e8576136e8614bd4565b6020020151836136f9836004614ba6565b600c811061370957613709614bd4565b602002015283826002811061372057613720614bd4565b60200201516020015160016002811061373b5761373b614bd4565b60200201518361374c836005614ba6565b600c811061375c5761375c614bd4565b6020020152506001016135b2565b5061377361409e565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b60606000806137a5846139f6565b61ffff166001600160401b038111156137c0576137c0614110565b6040519080825280601f01601f1916602001820160405280156137ea576020820181803683370190505b5090506000805b825182108015613802575061010081105b15612e22576001811b935085841615613849578060f81b83838151811061382b5761382b614bd4565b60200101906001600160f81b031916908160001a9053508160010191505b61385281614cdc565b90506137f1565b6033546001600160a01b031633146120945760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610778565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061396f84613ded565b9050808360ff166001901b116139ed5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610778565b90505b92915050565b6000805b82156139f057613a0b600184614c0c565b9092169180613a19816151f2565b9150506139fa565b60408051808201909152600080825260208201526102008261ffff1610613a7d5760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610778565b8161ffff16600103613a905750816139f0565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613af957600161ffff871660ff83161c81169003613adc57613ad98484613399565b93505b613ae68384613399565b92506201fffe600192831b169101613aac565b509195945050505050565b60408051808201909152600080825260208201528151158015613b2957506020820151155b15613b47575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206152148339815191528460200151613b7a9190614bea565b613b9290600080516020615214833981519152614c0c565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613c5c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610778565b613c6582613b9f565b610b42816138b3565b600060208451613c7e9190614bea565b15613d055760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610778565b8260205b85518111610d1657613d1c600285614bea565b600003613d4057816000528086015160205260406000209150600284049350613d59565b8086015160005281602052604060002091506002840493505b613d64602082614ba6565b9050613d09565b60008080600080516020615214833981519152600360008051602061521483398151915286600080516020615214833981519152888909090890506000613de1827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615214833981519152613f75565b91959194509092505050565b600061010082511115613e765760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610778565b8151600003613e8757506000919050565b60008083600081518110613e9d57613e9d614bd4565b0160200151600160f89190911c81901b92505b8451811015613f6c57848181518110613ecb57613ecb614bd4565b0160200151600160f89190911c1b9150828211613f605760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610778565b91811791600101613eb0565b50909392505050565b600080613f8061409e565b613f886140bc565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fc557fe5b50826140135760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610778565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061406d6140da565b815260200161407a6140da565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613b9a57600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561414857614148614110565b60405290565b60405161010081016001600160401b038111828210171561414857614148614110565b604051601f8201601f191681016001600160401b038111828210171561419957614199614110565b604052919050565b6000806001600160401b038411156141bb576141bb614110565b50601f8301601f19166020016141d081614171565b9150508281528383830111156141e557600080fd5b828260208301376000602084830101529392505050565b600082601f83011261420d57600080fd5b61421c838335602085016141a1565b9392505050565b6001600160a01b038116811461100a57600080fd5b600080600080600080600080610100898b03121561425557600080fd5b88359750602089013596506040890135955061427360608a016140f8565b94506080890135935060a08901356001600160401b0381111561429557600080fd5b6142a18b828c016141fc565b93505060c0890135915060e08901356142b981614223565b809150509295985092959890939650565b6000604082840312156142dc57600080fd5b6142e4614126565b823581526020928301359281019290925250919050565b600082601f83011261430c57600080fd5b614314614126565b80604084018581111561432657600080fd5b845b81811015614340578035845260209384019301614328565b509095945050505050565b60006080828403121561435d57600080fd5b614365614126565b905061437183836142fb565b815261438083604084016142fb565b602082015292915050565b60008060008061012085870312156143a257600080fd5b843593506143b386602087016142ca565b92506143c2866060870161434b565b91506143d18660e087016142ca565b905092959194509250565b6000602082840312156143ee57600080fd5b5035919050565b60006020828403121561440757600080fd5b81356139ed81614223565b602080825282518282018190526000918401906040840190835b818110156143405783516001600160a01b031683526020938401939092019160010161442c565b801515811461100a57600080fd5b60006020828403121561447357600080fd5b81356139ed81614453565b803563ffffffff81168114613b9a57600080fd5b60006001600160401b038211156144ab576144ab614110565b5060051b60200190565b600082601f8301126144c657600080fd5b81356144d96144d482614492565b614171565b8082825260208201915060208360051b8601019250858311156144fb57600080fd5b602085015b8381101561451f576145118161447e565b835260209283019201614500565b5095945050505050565b600082601f83011261453a57600080fd5b81356145486144d482614492565b8082825260208201915060208360061b86010192508583111561456a57600080fd5b602085015b8381101561451f5761458187826142ca565b835260209092019160400161456f565b600082601f8301126145a257600080fd5b81356145b06144d482614492565b8082825260208201915060208360051b8601019250858311156145d257600080fd5b602085015b8381101561451f5780356001600160401b038111156145f557600080fd5b614604886020838a01016144b5565b845250602092830192016145d7565b6000610180828403121561462657600080fd5b61462e61414e565b905081356001600160401b0381111561464657600080fd5b614652848285016144b5565b82525060208201356001600160401b0381111561466e57600080fd5b61467a84828501614529565b60208301525060408201356001600160401b0381111561469957600080fd5b6146a584828501614529565b6040830152506146b8836060840161434b565b60608201526146ca8360e084016142ca565b60808201526101208201356001600160401b038111156146e957600080fd5b6146f5848285016144b5565b60a0830152506101408201356001600160401b0381111561471557600080fd5b614721848285016144b5565b60c0830152506101608201356001600160401b0381111561474157600080fd5b61474d84828501614591565b60e08301525092915050565b60008060006060848603121561476e57600080fd5b8335925061477e6020850161447e565b915060408401356001600160401b0381111561479957600080fd5b6147a586828701614613565b9150509250925092565b600081518084526020840193506020830160005b828110156147ea5781516001600160601b03168652602095860195909101906001016147c3565b5093949350505050565b604081526000835160408084015261480f60808401826147af565b90506020850151603f1984830301606085015261482c82826147af565b925050508260208301529392505050565b60008083601f84011261484f57600080fd5b5081356001600160401b0381111561486657600080fd5b60208301915083602082850101111561487e57600080fd5b9250929050565b60008060006040848603121561489a57600080fd5b83356001600160401b038111156148b057600080fd5b6148bc8682870161483d565b909790965060209590950135949350505050565b600080604083850312156148e357600080fd5b82356148ee81614223565b915060208301356001600160401b0381111561490957600080fd5b83016060818603121561491b57600080fd5b604051606081016001600160401b038111828210171561493d5761493d614110565b60405281356001600160401b0381111561495657600080fd5b614962878285016141fc565b8252506020828101359082015260409182013591810191909152919491935090915050565b60006020828403121561499957600080fd5b81356001600160401b038111156149af57600080fd5b8201601f810184136149c057600080fd5b6149cf848235602084016141a1565b949350505050565b6000806000606084860312156149ec57600080fd5b83359250602084013561477e81614223565b600080600060608486031215614a1357600080fd5b8335614a1e81614223565b92506020840135614a2e81614223565b91506040840135614a3e81614223565b809150509250925092565b60008060008060608587031215614a5f57600080fd5b8435935060208501356001600160401b03811115614a7c57600080fd5b614a888782880161483d565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614ab657600080fd5b873596506020880135955060408801359450614ad4606089016140f8565b93506080880135925060a08801356001600160401b03811115614af657600080fd5b614b028a828b016141fc565b979a969950949793969295929450505060c09091013590565b60008060208385031215614b2e57600080fd5b82356001600160401b03811115614b4457600080fd5b8301601f81018513614b5557600080fd5b80356001600160401b03811115614b6b57600080fd5b8560208260051b8401011115614b8057600080fd5b6020919091019590945092505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156139f0576139f0614b90565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614c0757634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156139f0576139f0614b90565b600060208284031215614c3157600080fd5b5051919050565b600060208284031215614c4a57600080fd5b81516001600160c01b03811681146139ed57600080fd5b600060208284031215614c7357600080fd5b815160ff811681146139ed57600080fd5b6001600160601b038116811461100a57600080fd5b60006040828403128015614cac57600080fd5b50614cb5614126565b8251614cc081614223565b81526020830151614cd081614c84565b60208201529392505050565b600060018201614cee57614cee614b90565b5060010190565b600060208284031215614d0757600080fd5b81516139ed81614223565b600060208284031215614d2457600080fd5b815167ffffffffffffffff19811681146139ed57600080fd5b600060208284031215614d4f57600080fd5b81516139ed81614c84565b6001600160601b0382811682821603908111156139f0576139f0614b90565b63ffffffff60e01b8360e01b16815260006004820183516020850160005b82811015614db5578151845260209384019390910190600101614d97565b50919695505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015614ebd57602081850181015186830182015201614ea1565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b0383168152604060208201526000825160606040840152614f0760a0840182614e97565b90506020840151606084015260408401516080840152809150509392505050565b60208152600061421c6020830184614e97565b6001600160601b038181168382160290811690818114614f5d57614f5d614b90565b5092915050565b80820281158282048414176139f0576139f0614b90565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b8881528760208201528660408201526001600160601b03198616606082015284608082015261010060a0820152600061500f610100830186614e97565b60c0830194909452506001600160a01b039190911660e0909101529695505050505050565b60006020828403121561504657600080fd5b81516139ed81614453565b60008235609e1983360301811261506757600080fd5b9190910192915050565b8035613b9a81614223565b81835260208301925060008160005b848110156147ea57813561509e81614223565b6001600160a01b0316865260208201356150b781614c84565b6001600160601b03166020870152604095860195919091019060010161508b565b6020808252810182905260006040600584901b830181019083018583609e1936839003015b878210156151e557868503603f19018452823581811261511c57600080fd5b8901803536829003601e1901811261513357600080fd5b81016020810190356001600160401b0381111561514f57600080fd5b8060061b360382131561516157600080fd5b60a0885261517360a08901828461507c565b91505061518260208301615071565b6001600160a01b03166020880152604082810135908801526151a66060830161447e565b63ffffffff1660608801526151bd6080830161447e565b63ffffffff8116608089015291509550506020938401939290920191600191909101906150fd565b5092979650505050505050565b600061ffff821661ffff810361520a5761520a614b90565b6001019291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a2646970667358221220f0c59c77b7d074bcdb7b19f8c2809464f2595d1d7275a6efdc21b02475ba3c0064736f6c634300081b0033","nonce":48,"gas_used":4683225},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4775d9","logs":[{"address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x282d23ca81d55c3feed07c818845e579a11199a8de95416327a7443e60ba11c8","block_number":8},{"info":{"transaction_hash":"0x0522948d2d86e6eefacbffda3bf89dd98f7aadad2949c5b6086eac98993fee0f","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":145473,"gas_limit":223757,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0x0165878a594ca255338adfa4d48449f69242eb8f","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":138912,"gas_limit":213850,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x0165878a594ca255338adfa4d48449f69242eb8f","address":"0x0b306bf915c4d645ff596e518faf3f9669b97016","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xd4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e8","output":"0x","gas_used":125780,"gas_limit":197799,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad4"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xaf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c20"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e8"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4},{"Log":5},{"Log":6}]}],"exit":"Stop","out":"0x","nonce":23,"gas_used":169265},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x29531","logs":[{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016"],"data":"0x"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad4"],"data":"0x"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0xaf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c20"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e8"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000008400000000000000000800000000000000010000000000000000000000000000000000000000000100000000000000000041000000000000000000400000402000001002000000000000000000000000000020000020000000000000300800800000004000000000000000000000000440000000100000000000000000000000000000000000080000000000000100000000000000000000000000000000400000000000000000000000000000000000000000024400000200000000000040000000000002008002000000000000020000000000000000100400800000400000000000000000000000000000001400200"},"block_hash":"0xa353358546466a6edfc12ffc2251be42f4542e90bfe09816486471a8d00e850c","block_number":13},{"info":{"transaction_hash":"0x7c88615875ed593e5512621866226fb087d83925659156131063568e3b1e5782","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052348015600f57600080fd5b50607780601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220d9b5867338741992fb34ad4d7cbd0a6be2f72f88e519e77dfae6583d2333734564736f6c63430008180033","output":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220d9b5867338741992fb34ad4d7cbd0a6be2f72f88e519e77dfae6583d2333734564736f6c63430008180033","gas_used":23875,"gas_limit":47605,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220d9b5867338741992fb34ad4d7cbd0a6be2f72f88e519e77dfae6583d2333734564736f6c63430008180033","nonce":2,"gas_used":79145},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x13529","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x4e339f47e5c414499741f7c79245654e069b212d8954eb2f72386530919f3cad","block_number":3},{"info":{"transaction_hash":"0xe4f35171dc99ca0fa3fca11e4d1089f12ec661eb6ba2b048c21afc265b73f8fe","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a060405234801561001057600080fd5b5060405161139e38038061139e83398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b60805161123261016c60003960008181610142015281816102750152818161040f01526107d601526112326000f3fe608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f2a565b60405180910390f35b6100f46100ef366004610f9d565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fd0565b610404565b005b6100f4610138366004610feb565b610528565b6101647f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fd0565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9d565b6105f5565b6040516100d8919061102e565b61018f6101e1366004610f9d565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611066565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fd0565b6108d5565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102bb5760405162461bcd60e51b81526004016102b290611090565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611103565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611119565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112f565b6000610368836108f4565b905061037f898461037a60018561119a565b6109f1565b8085858151811061039257610392611119565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461044c5760405162461bcd60e51b81526004016102b290611090565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611119565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611103565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611119565b6020026020010181815250506000801b8282815181106106a2576106a2611119565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611119565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108135760405162461bcd60e51b81526004016102b290611090565b60005b818110156108cf57600083838381811061083257610832611119565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112f565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111b6565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b60018461119a565b63ffffffff168152602081019190915260400160009081205490036103b75760ff841660009081526002602052604081209061098860018461119a565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111d2565b81548110610abc57610abc611119565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111d2565b81548110610b0357610b03611119565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111d2565b81548110610b5d57610b5d611119565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111e5565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111d2565b81548110610cb457610cb4611119565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111e5565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff1661119a565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff811115610edf57600080fd5b8401601f81018613610ef057600080fd5b803567ffffffffffffffff811115610f0757600080fd5b866020828401011115610f1957600080fd5b939660209190910195509293505050565b602080825282518282018190526000918401906040840190835b81811015610f6857835163ffffffff16835260209384019390920191600101610f44565b509095945050505050565b803560ff81168114610f8457600080fd5b919050565b803563ffffffff81168114610f8457600080fd5b60008060408385031215610fb057600080fd5b610fb983610f73565b9150610fc760208401610f89565b90509250929050565b600060208284031215610fe257600080fd5b6103b782610f73565b60008060006060848603121561100057600080fd5b61100984610f73565b925061101760208501610f89565b915061102560408501610f89565b90509250925092565b602080825282518282018190526000918401906040840190835b81811015610f68578351835260209384019390920191600101611048565b6000806040838503121561107957600080fd5b61108283610f73565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff82811682821603908111156103fe576103fe611184565b63ffffffff81811683821601908111156103fe576103fe611184565b818103818111156103fe576103fe611184565b6000816111f4576111f4611184565b50600019019056fea2646970667358221220ba945981c3e38b03a37bd1abcfb723dba10920ef62bf03b26894aea4f4c71fdb64736f6c634300081b0033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c","output":"0x608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f2a565b60405180910390f35b6100f46100ef366004610f9d565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fd0565b610404565b005b6100f4610138366004610feb565b610528565b6101647f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fd0565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9d565b6105f5565b6040516100d8919061102e565b61018f6101e1366004610f9d565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611066565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fd0565b6108d5565b6060336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146102bb5760405162461bcd60e51b81526004016102b290611090565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611103565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611119565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112f565b6000610368836108f4565b905061037f898461037a60018561119a565b6109f1565b8085858151811061039257610392611119565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461044c5760405162461bcd60e51b81526004016102b290611090565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611119565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611103565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611119565b6020026020010181815250506000801b8282815181106106a2576106a2611119565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611119565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146108135760405162461bcd60e51b81526004016102b290611090565b60005b818110156108cf57600083838381811061083257610832611119565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112f565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111b6565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b60018461119a565b63ffffffff168152602081019190915260400160009081205490036103b75760ff841660009081526002602052604081209061098860018461119a565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111d2565b81548110610abc57610abc611119565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111d2565b81548110610b0357610b03611119565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111d2565b81548110610b5d57610b5d611119565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111e5565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111d2565b81548110610cb457610cb4611119565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111e5565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff1661119a565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff811115610edf57600080fd5b8401601f81018613610ef057600080fd5b803567ffffffffffffffff811115610f0757600080fd5b866020828401011115610f1957600080fd5b939660209190910195509293505050565b602080825282518282018190526000918401906040840190835b81811015610f6857835163ffffffff16835260209384019390920191600101610f44565b509095945050505050565b803560ff81168114610f8457600080fd5b919050565b803563ffffffff81168114610f8457600080fd5b60008060408385031215610fb057600080fd5b610fb983610f73565b9150610fc760208401610f89565b90509250929050565b600060208284031215610fe257600080fd5b6103b782610f73565b60008060006060848603121561100057600080fd5b61100984610f73565b925061101760208501610f89565b915061102560408501610f89565b90509250925092565b602080825282518282018190526000918401906040840190835b81811015610f68578351835260209384019390920191600101611048565b6000806040838503121561107957600080fd5b61108283610f73565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff82811682821603908111156103fe576103fe611184565b63ffffffff81811683821601908111156103fe576103fe611184565b818103818111156103fe576103fe611184565b6000816111f4576111f4611184565b50600019019056fea2646970667358221220ba945981c3e38b03a37bd1abcfb723dba10920ef62bf03b26894aea4f4c71fdb64736f6c634300081b0033","gas_used":956325,"gas_limit":1282090,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f2a565b60405180910390f35b6100f46100ef366004610f9d565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fd0565b610404565b005b6100f4610138366004610feb565b610528565b6101647f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fd0565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9d565b6105f5565b6040516100d8919061102e565b61018f6101e1366004610f9d565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611066565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fd0565b6108d5565b6060336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146102bb5760405162461bcd60e51b81526004016102b290611090565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611103565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611119565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112f565b6000610368836108f4565b905061037f898461037a60018561119a565b6109f1565b8085858151811061039257610392611119565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461044c5760405162461bcd60e51b81526004016102b290611090565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611119565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611103565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611119565b6020026020010181815250506000801b8282815181106106a2576106a2611119565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611119565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146108135760405162461bcd60e51b81526004016102b290611090565b60005b818110156108cf57600083838381811061083257610832611119565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112f565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111b6565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b60018461119a565b63ffffffff168152602081019190915260400160009081205490036103b75760ff841660009081526002602052604081209061098860018461119a565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111d2565b81548110610abc57610abc611119565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111d2565b81548110610b0357610b03611119565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111d2565b81548110610b5d57610b5d611119565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111e5565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111d2565b81548110610cb457610cb4611119565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111e5565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff1661119a565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff811115610edf57600080fd5b8401601f81018613610ef057600080fd5b803567ffffffffffffffff811115610f0757600080fd5b866020828401011115610f1957600080fd5b939660209190910195509293505050565b602080825282518282018190526000918401906040840190835b81811015610f6857835163ffffffff16835260209384019390920191600101610f44565b509095945050505050565b803560ff81168114610f8457600080fd5b919050565b803563ffffffff81168114610f8457600080fd5b60008060408385031215610fb057600080fd5b610fb983610f73565b9150610fc760208401610f89565b90509250929050565b600060208284031215610fe257600080fd5b6103b782610f73565b60008060006060848603121561100057600080fd5b61100984610f73565b925061101760208501610f89565b915061102560408501610f89565b90509250925092565b602080825282518282018190526000918401906040840190835b81811015610f68578351835260209384019390920191600101611048565b6000806040838503121561107957600080fd5b61108283610f73565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff82811682821603908111156103fe576103fe611184565b63ffffffff81811683821601908111156103fe576103fe611184565b818103818111156103fe576103fe611184565b6000816111f4576111f4611184565b50600019019056fea2646970667358221220ba945981c3e38b03a37bd1abcfb723dba10920ef62bf03b26894aea4f4c71fdb64736f6c634300081b0033","nonce":40,"gas_used":1087253},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x109715","logs":[{"address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x24976c70f526fb1dc5b7a7714f20634961dae753235ef9aace058fd50bdb8c95","block_number":5},{"info":{"transaction_hash":"0x4270863cefc53e29f2a5156b1aa25114a8a4912c3fcd6ad984ed699a20b6fdc1","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b506040516104be3803806104be83398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610345806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea2646970667358221220042ec08fde05948b20d3f0fe8bf03cfe1d6ad33ecfc3fd565cbce702b2daa70b64736f6c63430008180033000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad788","output":"0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea2646970667358221220042ec08fde05948b20d3f0fe8bf03cfe1d6ad33ecfc3fd565cbce702b2daa70b64736f6c63430008180033","gas_used":216356,"gas_limit":302820,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea2646970667358221220042ec08fde05948b20d3f0fe8bf03cfe1d6ad33ecfc3fd565cbce702b2daa70b64736f6c63430008180033","nonce":11,"gas_used":288554},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x532369","logs":[{"address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x512c15c3770e645be22b8b577a2116eae30b1a28221ddff3feb06ada33df8b1c","block_number":6},{"info":{"transaction_hash":"0x78097108572bd24a0d9d38402e08deba85f116288eb014d9f4716584e68fc3b1","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":8,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8be1b","logs":[{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000040000000000000800000000000000000000000000000000040000000000000000000000000000000008000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xee6cb7f6ae5c0ed43bfc6d081e3fc7dea15f3d312f33bd7874634a2922cce52e","block_number":4},{"info":{"transaction_hash":"0xc55bc6448216d5fabf802cafda5597277ac40a0a4254523971756c67ff9fb2ee","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x99a88ec4000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3600000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49","output":"0x","gas_used":17021,"gas_limit":31821,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0xf5059a5d33d5853360d16c683c16e67980206f36","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x3659cfe600000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49","output":"0x","gas_used":11547,"gas_limit":25979,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":41,"gas_used":38821},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x112eba","logs":[{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000800010000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000400000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x24976c70f526fb1dc5b7a7714f20634961dae753235ef9aace058fd50bdb8c95","block_number":5},{"info":{"transaction_hash":"0x52db988f0d1c79dfc7e0660fec8ac4ac3353df68179b3ed54f9b7b06eb1e58d1","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":22943,"gas_limit":43419,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":15645,"gas_limit":35595,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":1,"children":[3],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":9660,"gas_limit":29189,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":2,"children":[],"idx":3,"trace":{"depth":3,"success":true,"caller":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","address":"0x9a676e781a523b5d0c0e43731313a708cb607508","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":2362,"gas_limit":21587,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c943713","0x0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8"],"data":"0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x","nonce":50,"gas_used":44275},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4a398f","logs":[{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0xa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c943713","0x0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8"],"data":"0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000001000000000000400000000000000000000000000000000000000000000000000000800000000000000000000000000000240000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000001000000020000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x282d23ca81d55c3feed07c818845e579a11199a8de95416327a7443e60ba11c8","block_number":8},{"info":{"transaction_hash":"0x1477f2503d2c830cd5dbe18d759733ee204a05f41077e044ee3f87d7b460fb74","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","nonce":35,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8bf2e","logs":[{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400008000000000000000000010000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000001000"},"block_hash":"0x8fddef1a860c2edab45f730bdb41cae8101050bbae2a8da34458d9925f75346e","block_number":3},{"info":{"transaction_hash":"0xd3871eb6a2abee19230609004acda2e37090663ebffa73f1cc1de44467665fda","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":11740,"gas_limit":24386,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":4445,"gas_limit":16862,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x","nonce":51,"gas_used":33172},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8194","logs":[{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000008000000000000000000010100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000"},"block_hash":"0x9e40759671d0d7a05a59d81f7501b4d17b27ee94a023faaee83f20d2091a5f51","block_number":9},{"info":{"transaction_hash":"0xeec7885bd4acd3c5899e60e2f446f2c7677866554225055981920e21ab03ad31","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x610178da211fef7d417bc0e6fed39f05609ad788","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x610178da211fef7d417bc0e6fed39f05609ad788","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6101206040523480156200001257600080fd5b5060405162005ec238038062005ec283398101604081905262000035916200016f565b6001600160a01b0380861660805284811660a052831660c0526001600160401b0380831660e0528116610100526200006c62000077565b5050505050620001e7565b600054610100900460ff1615620000e45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000137576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200014f57600080fd5b50565b80516001600160401b03811681146200016a57600080fd5b919050565b600080600080600060a086880312156200018857600080fd5b8551620001958162000139565b6020870151909550620001a88162000139565b6040870151909450620001bb8162000139565b9250620001cb6060870162000152565b9150620001db6080870162000152565b90509295509295909350565b60805160a05160c05160e05161010051615be0620002e2600039600081816105b501528181612007015281816120be0152612116015260008181610275015281816125a7015281816125db01528181612c0701528181612c340152818161437a01526143b501526000818161036d01528181610614015281816107a701528181610aef01528181610c3a01528181610dc201528181610f7d0152818161115e0152818161128801528181611459015281816118a601528181611a4401528181611b8301528181611d4501528181611e2f015261312a015260008181610241015261339c0152600081816104520152610e8d0152615be06000f3fe6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039b57600080fd5b506103af6103aa366004614e40565b610ca5565b60405161020f9190614eb9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ec7565b610d0a565b60405161020f9190614ee0565b34801561041557600080fd5b506103af610424366004614ec7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f28565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614f9b565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e40565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615045565b61144e565b34801561052f57600080fd5b5061022d61053e366004615071565b61168b565b34801561054f57600080fd5b5061022d61055e36600461518f565b611863565b34801561056f57600080fd5b5061022d61057e366004615260565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615045565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610687919061535b565b156106ad5760405162461bcd60e51b81526004016106a49061537d565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615422565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a919061535b565b156108375760405162461bcd60e51b81526004016106a49061537d565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b629190615471565b8935610b7160208c018c61548a565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a6154d0565b9050602002016020810190610baf91906154e6565b8a8a86818110610bc157610bc16154d0565b9050602002810190610bd3919061548a565b8a8a88818110610be557610be56154d0565b9050602002810190610bf7919061550d565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e81565b6002811115610dae57610dae614e81565b90525092915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610dff5760405162461bcd60e51b81526004016106a490615556565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615620565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f5592919061566f565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff0919061535b565b1561100d5760405162461bcd60e51b81526004016106a49061537d565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d19190615471565b8735610b7160208a018a61548a565b6000805b8881101561127a576112668b8b8b84818110611202576112026154d0565b905060200201602081019061121791906154e6565b8a358a8a8681811061122b5761122b6154d0565b905060200281019061123d919061548a565b8a8a8881811061124f5761124f6154d0565b9050602002810190611261919061550d565b6128c1565b6112709083615683565b91506001016111e4565b506033546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163c2c51c4091166112bf633b9aca00856156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e81565b60028111156113d9576113d9614e81565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615422565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114965760405162461bcd60e51b81526004016106a490615556565b6114a4633b9aca00826156f1565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca0083615705565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615719565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611919919061535b565b156119365760405162461bcd60e51b81526004016106a49061537d565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e36154d0565b60200260200101518784815181106119fd576119fd6154d0565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab7919061535b565b15611ad45760405162461bcd60e51b81526004016106a49061537d565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf69190615471565b8b35610b7160208e018e61548a565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d6154d0565b9050602002810190611c4f9190615739565b8c8c86818110611c6157611c616154d0565b9050602002810190611c73919061548a565b8c8c88818110611c8557611c856154d0565b9050602002810190611c97919061550d565b8c8c8a818110611ca957611ca96154d0565b9050602002810190611cbb919061550d565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee908390615683565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca009061575a565b613372565b602081015115611dde5760335460208201516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263c2c51c4092911690611d7f90633b9aca00906156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea2919061535b565b15611ebf5760405162461bcd60e51b81526004016106a49061537d565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f829190615771565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c6020615784565b6120e37f000000000000000000000000000000000000000000000000000000000000000084615719565b610d0491906157a7565b60006120fb600c6020615784565b6121068360016157cd565b6121109190615784565b610d04907f00000000000000000000000000000000000000000000000000000000000000006157cd565b6121466003602061575a565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e81565b600281111561238757612387614e81565b90525090506000816060015160028111156123a4576123a4614e81565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e906157ed565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f83615811565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000000000000081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000000000000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e81565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b0316612773919061575a565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b60405160029061282290849060009060200161582a565b60408051601f198184030181529082905261283c91615859565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d049190615471565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e81565b60028111156129c0576129c0614e81565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e81565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000000000000081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000000000000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e81565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b896158da565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b6158da565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e81565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a16565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f6158da565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e81565b600281111561333857613338614e81565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d6154d0565b60200260200101519050919050565b60008160018151811061342d5761342d6154d0565b6000610d0482600281518110613469576134696154d0565b60200260200101516147cd565b61348260036002615b17565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b61353090602061575a565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d0482600781518110613469576134696154d0565b60006136fd6001600160401b03808416908516615b23565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b8051909150156116865780806020019051810190613890919061535b565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b17565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b17565b61399a60c0840160a08501615b43565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615b8b83398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b17565b613a21610100840160e08501615b43565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b17565b613aa960e0840160c08501615b43565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b856158da565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b7690602061575a565b613b80848061548a565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b90602061575a565b613c18604085018561548a565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615b8b83398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e6003602061575a565b613cab602085018561548a565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d2481602061575a565b613d31606085018561548a565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd90602061575a565b613dea608085018561548a565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615b43565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615b43565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef3608086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb8602086018661548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b7614071604087018761548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a606086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615b43565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a9614268878061548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d0482600181518110613469576134696154d0565b6000610d0482600381518110613469576134696154d0565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000000000000006143dc565b50825b60408051808201909152600080825260208201526143fa8286615719565b6001600160401b03908116825260348054849260009161441c918591166157cd565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e81565b1461448d576039805490600061448083615b60565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e81565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b03166157cd565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b91906156f1565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c3576147506002856156f1565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b600080600283516148459190615705565b90506000816001600160401b038111156148615761486161508e565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a5838361575a565b815181106148b5576148b56154d0565b6020026020010151868360026148cb919061575a565b6148d6906001614c64565b815181106148e6576148e66154d0565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f198184030181529082905261492291615859565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906149629190615471565b828281518110614974576149746154d0565b6020908102919091010152600101614890565b50614993600283615705565b91505b8115614aa95760005b82811015614a96576002826149b4838361575a565b815181106149c4576149c46154d0565b6020026020010151838360026149da919061575a565b6149e5906001614c64565b815181106149f5576149f56154d0565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a3191615859565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a719190615471565b828281518110614a8357614a836154d0565b602090810291909101015260010161499f565b50614aa2600283615705565b9150614996565b80600081518110614abc57614abc6154d0565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb89190615859565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615b77565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b0380821115614d7257600080fd5b614d7e8c838d01614ccc565b985060408b0135915080821115614d9457600080fd5b614da08c838d01614ce4565b909850965060608b0135915080821115614db957600080fd5b614dc58c838d01614ce4565b909650945060808b0135915080821115614dde57600080fd5b50614deb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e1157600080fd5b5081356001600160401b03811115614e2857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e5357600080fd5b82356001600160401b03811115614e6957600080fd5b614e7585828601614dff565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614eb557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614e97565b600060208284031215614ed957600080fd5b5035919050565b60006080820190506001600160401b03808451168352806020850151166020840152806040850151166040840152506060830151614f216060840182614e97565b5092915050565b600080600080600060608688031215614f4057600080fd5b85356001600160401b0380821115614f5757600080fd5b614f6389838a01614dff565b90975095506020880135915080821115614f7c57600080fd5b50614f8988828901614dff565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fb757600080fd5b8835614fc281614c77565b975060208901356001600160401b0380821115614fde57600080fd5b614fea8c838d01614ce4565b909950975060408b013591508082111561500357600080fd5b61500f8c838d01614ccc565b965060608b0135915080821115614db957600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615025565b6000806040838503121561505857600080fd5b823561506381615025565b946020939093013593505050565b60006020828403121561508357600080fd5b81356136fd81615025565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150c7576150c761508e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156150f5576150f561508e565b604052919050565b60006001600160401b038211156151165761511661508e565b5060051b60200190565b600082601f83011261513157600080fd5b81356020615146615141836150fd565b6150cd565b8083825260208201915060208460051b87010193508684111561516857600080fd5b602086015b84811015615184578035835291830191830161516d565b509695505050505050565b6000806000606084860312156151a457600080fd5b83356001600160401b03808211156151bb57600080fd5b818601915086601f8301126151cf57600080fd5b813560206151df615141836150fd565b82815260059290921b8401810191818101908a8411156151fe57600080fd5b948201945b8386101561522557853561521681615025565b82529482019490820190615203565b9750508701359250508082111561523b57600080fd5b5061524886828701615120565b9250506152576040850161503a565b90509250925092565b60008060008060008060008060008060c08b8d03121561527f57600080fd5b6152888b614c8c565b995060208b01356001600160401b03808211156152a457600080fd5b6152b08e838f01614ccc565b9a5060408d01359150808211156152c657600080fd5b6152d28e838f01614ce4565b909a50985060608d01359150808211156152eb57600080fd5b6152f78e838f01614ce4565b909850965060808d013591508082111561531057600080fd5b61531c8e838f01614ce4565b909650945060a08d013591508082111561533557600080fd5b506153428d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b60006020828403121561536d57600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b60006020828403121561548357600080fd5b5051919050565b6000808335601e198436030181126154a157600080fd5b8301803591506001600160401b038211156154bb57600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156154f857600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261552457600080fd5b8301803591506001600160401b0382111561553e57600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b838110156155eb5781810151838201526020016155d3565b50506000910152565b6000815180845261560c8160208601602086016155d0565b601f01601f19169290920160200192915050565b60808152600061563460808301888a6155a7565b828103602084015261564681886155f4565b9050828103604084015261565b8186886155a7565b915050826060830152979650505050505050565b602081526000614adc6020830184866155a7565b80820182811260008312801582168215821617156156a3576156a3614c4e565b505092915050565b80820260008212600160ff1b841416156156c7576156c7614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b600082615700576157006156db565b500690565b600082615714576157146156db565b500490565b6001600160401b03828116828216039080821115614f2157614f21614c4e565b6000823561017e1983360301811261575057600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160280821691908281146156a3576156a3614c4e565b60006001600160401b03808416806157c1576157c16156db565b92169190910492915050565b6001600160401b03818116838216019080821115614f2157614f21614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161582357615823614c4e565b5060010190565b6000835161583c8184602088016155d0565b6001600160801b0319939093169190920190815260100192915050565b600082516157508184602087016155d0565b600082601f83011261587c57600080fd5b81356001600160401b038111156158955761589561508e565b6158a8601f8201601f19166020016150cd565b8181528460208386010111156158bd57600080fd5b816020850160208301376000918101602001919091529392505050565b600061018082360312156158ed57600080fd5b6158f56150a4565b82356001600160401b038082111561590c57600080fd5b6159183683870161586b565b8352602085013591508082111561592e57600080fd5b61593a3683870161586b565b6020840152604085013591508082111561595357600080fd5b61595f3683870161586b565b6040840152606085013591508082111561597857600080fd5b6159843683870161586b565b6060840152608085013591508082111561599d57600080fd5b506159aa3682860161586b565b6080830152506159bc60a08401614c8c565b60a08201526159cd60c08401614c8c565b60c08201526159de60e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a2857600080fd5b81516136fd81614c77565b600181815b80851115615a6e578160001904821115615a5457615a54614c4e565b80851615615a6157918102915b93841c9390800290615a38565b509250929050565b600082615a8557506001610d04565b81615a9257506000610d04565b8160018114615aa85760028114615ab257615ace565b6001915050610d04565b60ff841115615ac357615ac3614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615af1575081810a610d04565b615afb8383615a33565b8060001904821115615b0f57615b0f614c4e565b029392505050565b60006136fd8383615a76565b8181036000831280158383131683831282161715614f2157614f21614c4e565b600060208284031215615b5557600080fd5b81356136fd81614c77565b600081615b6f57615b6f614c4e565b506000190190565b6020815260006136fd60208301846155f456fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212203a1d7654540a3a59378fcb8f0dc45727b0865d15b2835f5c00ae74b9a4b3506964736f6c6343000818003300000000000000000000000042424242424242424242424242424242424242420000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3180000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000000000000000000000000000000000000773594000000000000000000000000000000000000000000000000000000000006059f460","output":"0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e40565b610ca5565b60405161020f9190614eb9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ec7565b610d0a565b60405161020f9190614ee0565b34801561041557600080fd5b506103af610424366004614ec7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f28565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614f9b565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e40565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615045565b61144e565b34801561052f57600080fd5b5061022d61053e366004615071565b61168b565b34801561054f57600080fd5b5061022d61055e36600461518f565b611863565b34801561056f57600080fd5b5061022d61057e366004615260565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615045565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610687919061535b565b156106ad5760405162461bcd60e51b81526004016106a49061537d565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615422565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a919061535b565b156108375760405162461bcd60e51b81526004016106a49061537d565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b629190615471565b8935610b7160208c018c61548a565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a6154d0565b9050602002016020810190610baf91906154e6565b8a8a86818110610bc157610bc16154d0565b9050602002810190610bd3919061548a565b8a8a88818110610be557610be56154d0565b9050602002810190610bf7919061550d565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e81565b6002811115610dae57610dae614e81565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a490615556565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615620565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f5592919061566f565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff0919061535b565b1561100d5760405162461bcd60e51b81526004016106a49061537d565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d19190615471565b8735610b7160208a018a61548a565b6000805b8881101561127a576112668b8b8b84818110611202576112026154d0565b905060200201602081019061121791906154e6565b8a358a8a8681811061122b5761122b6154d0565b905060200281019061123d919061548a565b8a8a8881811061124f5761124f6154d0565b9050602002810190611261919061550d565b6128c1565b6112709083615683565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e81565b60028111156113d9576113d9614e81565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615422565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a490615556565b6114a4633b9aca00826156f1565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca0083615705565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615719565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611919919061535b565b156119365760405162461bcd60e51b81526004016106a49061537d565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e36154d0565b60200260200101518784815181106119fd576119fd6154d0565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab7919061535b565b15611ad45760405162461bcd60e51b81526004016106a49061537d565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf69190615471565b8b35610b7160208e018e61548a565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d6154d0565b9050602002810190611c4f9190615739565b8c8c86818110611c6157611c616154d0565b9050602002810190611c73919061548a565b8c8c88818110611c8557611c856154d0565b9050602002810190611c97919061550d565b8c8c8a818110611ca957611ca96154d0565b9050602002810190611cbb919061550d565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee908390615683565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca009061575a565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea2919061535b565b15611ebf5760405162461bcd60e51b81526004016106a49061537d565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f829190615771565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c6020615784565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615719565b610d0491906157a7565b60006120fb600c6020615784565b6121068360016157cd565b6121109190615784565b610d04907f000000000000000000000000000000000000000000000000000000006059f4606157cd565b6121466003602061575a565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e81565b600281111561238757612387614e81565b90525090506000816060015160028111156123a4576123a4614e81565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e906157ed565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f83615811565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e81565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b0316612773919061575a565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b60405160029061282290849060009060200161582a565b60408051601f198184030181529082905261283c91615859565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d049190615471565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e81565b60028111156129c0576129c0614e81565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e81565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e81565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b896158da565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b6158da565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e81565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a16565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f6158da565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e81565b600281111561333857613338614e81565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d6154d0565b60200260200101519050919050565b60008160018151811061342d5761342d6154d0565b6000610d0482600281518110613469576134696154d0565b60200260200101516147cd565b61348260036002615b17565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b61353090602061575a565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d0482600781518110613469576134696154d0565b60006136fd6001600160401b03808416908516615b23565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b8051909150156116865780806020019051810190613890919061535b565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b17565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b17565b61399a60c0840160a08501615b43565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615b8b83398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b17565b613a21610100840160e08501615b43565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b17565b613aa960e0840160c08501615b43565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b856158da565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b7690602061575a565b613b80848061548a565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b90602061575a565b613c18604085018561548a565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615b8b83398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e6003602061575a565b613cab602085018561548a565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d2481602061575a565b613d31606085018561548a565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd90602061575a565b613dea608085018561548a565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615b43565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615b43565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef3608086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb8602086018661548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b7614071604087018761548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a606086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615b43565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a9614268878061548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d0482600181518110613469576134696154d0565b6000610d0482600381518110613469576134696154d0565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615719565b6001600160401b03908116825260348054849260009161441c918591166157cd565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e81565b1461448d576039805490600061448083615b60565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e81565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b03166157cd565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b91906156f1565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c3576147506002856156f1565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b600080600283516148459190615705565b90506000816001600160401b038111156148615761486161508e565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a5838361575a565b815181106148b5576148b56154d0565b6020026020010151868360026148cb919061575a565b6148d6906001614c64565b815181106148e6576148e66154d0565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f198184030181529082905261492291615859565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906149629190615471565b828281518110614974576149746154d0565b6020908102919091010152600101614890565b50614993600283615705565b91505b8115614aa95760005b82811015614a96576002826149b4838361575a565b815181106149c4576149c46154d0565b6020026020010151838360026149da919061575a565b6149e5906001614c64565b815181106149f5576149f56154d0565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a3191615859565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a719190615471565b828281518110614a8357614a836154d0565b602090810291909101015260010161499f565b50614aa2600283615705565b9150614996565b80600081518110614abc57614abc6154d0565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb89190615859565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615b77565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b0380821115614d7257600080fd5b614d7e8c838d01614ccc565b985060408b0135915080821115614d9457600080fd5b614da08c838d01614ce4565b909850965060608b0135915080821115614db957600080fd5b614dc58c838d01614ce4565b909650945060808b0135915080821115614dde57600080fd5b50614deb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e1157600080fd5b5081356001600160401b03811115614e2857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e5357600080fd5b82356001600160401b03811115614e6957600080fd5b614e7585828601614dff565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614eb557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614e97565b600060208284031215614ed957600080fd5b5035919050565b60006080820190506001600160401b03808451168352806020850151166020840152806040850151166040840152506060830151614f216060840182614e97565b5092915050565b600080600080600060608688031215614f4057600080fd5b85356001600160401b0380821115614f5757600080fd5b614f6389838a01614dff565b90975095506020880135915080821115614f7c57600080fd5b50614f8988828901614dff565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fb757600080fd5b8835614fc281614c77565b975060208901356001600160401b0380821115614fde57600080fd5b614fea8c838d01614ce4565b909950975060408b013591508082111561500357600080fd5b61500f8c838d01614ccc565b965060608b0135915080821115614db957600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615025565b6000806040838503121561505857600080fd5b823561506381615025565b946020939093013593505050565b60006020828403121561508357600080fd5b81356136fd81615025565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150c7576150c761508e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156150f5576150f561508e565b604052919050565b60006001600160401b038211156151165761511661508e565b5060051b60200190565b600082601f83011261513157600080fd5b81356020615146615141836150fd565b6150cd565b8083825260208201915060208460051b87010193508684111561516857600080fd5b602086015b84811015615184578035835291830191830161516d565b509695505050505050565b6000806000606084860312156151a457600080fd5b83356001600160401b03808211156151bb57600080fd5b818601915086601f8301126151cf57600080fd5b813560206151df615141836150fd565b82815260059290921b8401810191818101908a8411156151fe57600080fd5b948201945b8386101561522557853561521681615025565b82529482019490820190615203565b9750508701359250508082111561523b57600080fd5b5061524886828701615120565b9250506152576040850161503a565b90509250925092565b60008060008060008060008060008060c08b8d03121561527f57600080fd5b6152888b614c8c565b995060208b01356001600160401b03808211156152a457600080fd5b6152b08e838f01614ccc565b9a5060408d01359150808211156152c657600080fd5b6152d28e838f01614ce4565b909a50985060608d01359150808211156152eb57600080fd5b6152f78e838f01614ce4565b909850965060808d013591508082111561531057600080fd5b61531c8e838f01614ce4565b909650945060a08d013591508082111561533557600080fd5b506153428d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b60006020828403121561536d57600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b60006020828403121561548357600080fd5b5051919050565b6000808335601e198436030181126154a157600080fd5b8301803591506001600160401b038211156154bb57600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156154f857600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261552457600080fd5b8301803591506001600160401b0382111561553e57600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b838110156155eb5781810151838201526020016155d3565b50506000910152565b6000815180845261560c8160208601602086016155d0565b601f01601f19169290920160200192915050565b60808152600061563460808301888a6155a7565b828103602084015261564681886155f4565b9050828103604084015261565b8186886155a7565b915050826060830152979650505050505050565b602081526000614adc6020830184866155a7565b80820182811260008312801582168215821617156156a3576156a3614c4e565b505092915050565b80820260008212600160ff1b841416156156c7576156c7614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b600082615700576157006156db565b500690565b600082615714576157146156db565b500490565b6001600160401b03828116828216039080821115614f2157614f21614c4e565b6000823561017e1983360301811261575057600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160280821691908281146156a3576156a3614c4e565b60006001600160401b03808416806157c1576157c16156db565b92169190910492915050565b6001600160401b03818116838216019080821115614f2157614f21614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161582357615823614c4e565b5060010190565b6000835161583c8184602088016155d0565b6001600160801b0319939093169190920190815260100192915050565b600082516157508184602087016155d0565b600082601f83011261587c57600080fd5b81356001600160401b038111156158955761589561508e565b6158a8601f8201601f19166020016150cd565b8181528460208386010111156158bd57600080fd5b816020850160208301376000918101602001919091529392505050565b600061018082360312156158ed57600080fd5b6158f56150a4565b82356001600160401b038082111561590c57600080fd5b6159183683870161586b565b8352602085013591508082111561592e57600080fd5b61593a3683870161586b565b6020840152604085013591508082111561595357600080fd5b61595f3683870161586b565b6040840152606085013591508082111561597857600080fd5b6159843683870161586b565b6060840152608085013591508082111561599d57600080fd5b506159aa3682860161586b565b6080830152506159bc60a08401614c8c565b60a08201526159cd60c08401614c8c565b60c08201526159de60e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a2857600080fd5b81516136fd81614c77565b600181815b80851115615a6e578160001904821115615a5457615a54614c4e565b80851615615a6157918102915b93841c9390800290615a38565b509250929050565b600082615a8557506001610d04565b81615a9257506000610d04565b8160018114615aa85760028114615ab257615ace565b6001915050610d04565b60ff841115615ac357615ac3614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615af1575081810a610d04565b615afb8383615a33565b8060001904821115615b0f57615b0f614c4e565b029392505050565b60006136fd8383615a76565b8181036000831280158383131683831282161715614f2157614f21614c4e565b600060208284031215615b5557600080fd5b81356136fd81614c77565b600081615b6f57615b6f614c4e565b506000190190565b6020815260006136fd60208301846155f456fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212203a1d7654540a3a59378fcb8f0dc45727b0865d15b2835f5c00ae74b9a4b3506964736f6c63430008180033","gas_used":4734199,"gas_limit":6280212,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e40565b610ca5565b60405161020f9190614eb9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ec7565b610d0a565b60405161020f9190614ee0565b34801561041557600080fd5b506103af610424366004614ec7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f28565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614f9b565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e40565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615045565b61144e565b34801561052f57600080fd5b5061022d61053e366004615071565b61168b565b34801561054f57600080fd5b5061022d61055e36600461518f565b611863565b34801561056f57600080fd5b5061022d61057e366004615260565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615045565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610687919061535b565b156106ad5760405162461bcd60e51b81526004016106a49061537d565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615422565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a919061535b565b156108375760405162461bcd60e51b81526004016106a49061537d565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b629190615471565b8935610b7160208c018c61548a565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a6154d0565b9050602002016020810190610baf91906154e6565b8a8a86818110610bc157610bc16154d0565b9050602002810190610bd3919061548a565b8a8a88818110610be557610be56154d0565b9050602002810190610bf7919061550d565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e81565b6002811115610dae57610dae614e81565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a490615556565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615620565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f5592919061566f565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff0919061535b565b1561100d5760405162461bcd60e51b81526004016106a49061537d565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d19190615471565b8735610b7160208a018a61548a565b6000805b8881101561127a576112668b8b8b84818110611202576112026154d0565b905060200201602081019061121791906154e6565b8a358a8a8681811061122b5761122b6154d0565b905060200281019061123d919061548a565b8a8a8881811061124f5761124f6154d0565b9050602002810190611261919061550d565b6128c1565b6112709083615683565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e81565b60028111156113d9576113d9614e81565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615422565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a490615556565b6114a4633b9aca00826156f1565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca0083615705565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615719565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611919919061535b565b156119365760405162461bcd60e51b81526004016106a49061537d565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e36154d0565b60200260200101518784815181106119fd576119fd6154d0565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab7919061535b565b15611ad45760405162461bcd60e51b81526004016106a49061537d565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf69190615471565b8b35610b7160208e018e61548a565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d6154d0565b9050602002810190611c4f9190615739565b8c8c86818110611c6157611c616154d0565b9050602002810190611c73919061548a565b8c8c88818110611c8557611c856154d0565b9050602002810190611c97919061550d565b8c8c8a818110611ca957611ca96154d0565b9050602002810190611cbb919061550d565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee908390615683565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca009061575a565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea2919061535b565b15611ebf5760405162461bcd60e51b81526004016106a49061537d565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f829190615771565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c6020615784565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615719565b610d0491906157a7565b60006120fb600c6020615784565b6121068360016157cd565b6121109190615784565b610d04907f000000000000000000000000000000000000000000000000000000006059f4606157cd565b6121466003602061575a565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e81565b600281111561238757612387614e81565b90525090506000816060015160028111156123a4576123a4614e81565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e906157ed565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f83615811565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e81565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b0316612773919061575a565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b60405160029061282290849060009060200161582a565b60408051601f198184030181529082905261283c91615859565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d049190615471565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e81565b60028111156129c0576129c0614e81565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e81565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e81565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b896158da565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b6158da565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e81565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a16565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f6158da565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e81565b600281111561333857613338614e81565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d6154d0565b60200260200101519050919050565b60008160018151811061342d5761342d6154d0565b6000610d0482600281518110613469576134696154d0565b60200260200101516147cd565b61348260036002615b17565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b61353090602061575a565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d0482600781518110613469576134696154d0565b60006136fd6001600160401b03808416908516615b23565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b8051909150156116865780806020019051810190613890919061535b565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b17565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b17565b61399a60c0840160a08501615b43565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615b8b83398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b17565b613a21610100840160e08501615b43565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b17565b613aa960e0840160c08501615b43565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b856158da565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b7690602061575a565b613b80848061548a565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b90602061575a565b613c18604085018561548a565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615b8b83398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e6003602061575a565b613cab602085018561548a565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d2481602061575a565b613d31606085018561548a565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd90602061575a565b613dea608085018561548a565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615b43565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615b43565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef3608086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb8602086018661548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b7614071604087018761548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a606086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615b43565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a9614268878061548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d0482600181518110613469576134696154d0565b6000610d0482600381518110613469576134696154d0565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615719565b6001600160401b03908116825260348054849260009161441c918591166157cd565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e81565b1461448d576039805490600061448083615b60565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e81565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b03166157cd565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b91906156f1565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c3576147506002856156f1565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b600080600283516148459190615705565b90506000816001600160401b038111156148615761486161508e565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a5838361575a565b815181106148b5576148b56154d0565b6020026020010151868360026148cb919061575a565b6148d6906001614c64565b815181106148e6576148e66154d0565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f198184030181529082905261492291615859565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906149629190615471565b828281518110614974576149746154d0565b6020908102919091010152600101614890565b50614993600283615705565b91505b8115614aa95760005b82811015614a96576002826149b4838361575a565b815181106149c4576149c46154d0565b6020026020010151838360026149da919061575a565b6149e5906001614c64565b815181106149f5576149f56154d0565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a3191615859565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a719190615471565b828281518110614a8357614a836154d0565b602090810291909101015260010161499f565b50614aa2600283615705565b9150614996565b80600081518110614abc57614abc6154d0565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb89190615859565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615b77565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b0380821115614d7257600080fd5b614d7e8c838d01614ccc565b985060408b0135915080821115614d9457600080fd5b614da08c838d01614ce4565b909850965060608b0135915080821115614db957600080fd5b614dc58c838d01614ce4565b909650945060808b0135915080821115614dde57600080fd5b50614deb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e1157600080fd5b5081356001600160401b03811115614e2857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e5357600080fd5b82356001600160401b03811115614e6957600080fd5b614e7585828601614dff565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614eb557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614e97565b600060208284031215614ed957600080fd5b5035919050565b60006080820190506001600160401b03808451168352806020850151166020840152806040850151166040840152506060830151614f216060840182614e97565b5092915050565b600080600080600060608688031215614f4057600080fd5b85356001600160401b0380821115614f5757600080fd5b614f6389838a01614dff565b90975095506020880135915080821115614f7c57600080fd5b50614f8988828901614dff565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fb757600080fd5b8835614fc281614c77565b975060208901356001600160401b0380821115614fde57600080fd5b614fea8c838d01614ce4565b909950975060408b013591508082111561500357600080fd5b61500f8c838d01614ccc565b965060608b0135915080821115614db957600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615025565b6000806040838503121561505857600080fd5b823561506381615025565b946020939093013593505050565b60006020828403121561508357600080fd5b81356136fd81615025565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150c7576150c761508e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156150f5576150f561508e565b604052919050565b60006001600160401b038211156151165761511661508e565b5060051b60200190565b600082601f83011261513157600080fd5b81356020615146615141836150fd565b6150cd565b8083825260208201915060208460051b87010193508684111561516857600080fd5b602086015b84811015615184578035835291830191830161516d565b509695505050505050565b6000806000606084860312156151a457600080fd5b83356001600160401b03808211156151bb57600080fd5b818601915086601f8301126151cf57600080fd5b813560206151df615141836150fd565b82815260059290921b8401810191818101908a8411156151fe57600080fd5b948201945b8386101561522557853561521681615025565b82529482019490820190615203565b9750508701359250508082111561523b57600080fd5b5061524886828701615120565b9250506152576040850161503a565b90509250925092565b60008060008060008060008060008060c08b8d03121561527f57600080fd5b6152888b614c8c565b995060208b01356001600160401b03808211156152a457600080fd5b6152b08e838f01614ccc565b9a5060408d01359150808211156152c657600080fd5b6152d28e838f01614ce4565b909a50985060608d01359150808211156152eb57600080fd5b6152f78e838f01614ce4565b909850965060808d013591508082111561531057600080fd5b61531c8e838f01614ce4565b909650945060a08d013591508082111561533557600080fd5b506153428d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b60006020828403121561536d57600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b60006020828403121561548357600080fd5b5051919050565b6000808335601e198436030181126154a157600080fd5b8301803591506001600160401b038211156154bb57600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156154f857600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261552457600080fd5b8301803591506001600160401b0382111561553e57600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b838110156155eb5781810151838201526020016155d3565b50506000910152565b6000815180845261560c8160208601602086016155d0565b601f01601f19169290920160200192915050565b60808152600061563460808301888a6155a7565b828103602084015261564681886155f4565b9050828103604084015261565b8186886155a7565b915050826060830152979650505050505050565b602081526000614adc6020830184866155a7565b80820182811260008312801582168215821617156156a3576156a3614c4e565b505092915050565b80820260008212600160ff1b841416156156c7576156c7614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b600082615700576157006156db565b500690565b600082615714576157146156db565b500490565b6001600160401b03828116828216039080821115614f2157614f21614c4e565b6000823561017e1983360301811261575057600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160280821691908281146156a3576156a3614c4e565b60006001600160401b03808416806157c1576157c16156db565b92169190910492915050565b6001600160401b03818116838216019080821115614f2157614f21614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161582357615823614c4e565b5060010190565b6000835161583c8184602088016155d0565b6001600160801b0319939093169190920190815260100192915050565b600082516157508184602087016155d0565b600082601f83011261587c57600080fd5b81356001600160401b038111156158955761589561508e565b6158a8601f8201601f19166020016150cd565b8181528460208386010111156158bd57600080fd5b816020850160208301376000918101602001919091529392505050565b600061018082360312156158ed57600080fd5b6158f56150a4565b82356001600160401b038082111561590c57600080fd5b6159183683870161586b565b8352602085013591508082111561592e57600080fd5b61593a3683870161586b565b6020840152604085013591508082111561595357600080fd5b61595f3683870161586b565b6040840152606085013591508082111561597857600080fd5b6159843683870161586b565b6060840152608085013591508082111561599d57600080fd5b506159aa3682860161586b565b6080830152506159bc60a08401614c8c565b60a08201526159cd60c08401614c8c565b60c08201526159de60e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a2857600080fd5b81516136fd81614c77565b600181815b80851115615a6e578160001904821115615a5457615a54614c4e565b80851615615a6157918102915b93841c9390800290615a38565b509250929050565b600082615a8557506001610d04565b81615a9257506000610d04565b8160018114615aa85760028114615ab257615ace565b6001915050610d04565b60ff841115615ac357615ac3614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615af1575081810a610d04565b615afb8383615a33565b8060001904821115615b0f57615b0f614c4e565b029392505050565b60006136fd8383615a76565b8181036000831280158383131683831282161715614f2157614f21614c4e565b600060208284031215615b5557600080fd5b81356136fd81614c77565b600081615b6f57615b6f614c4e565b506000190190565b6020815260006136fd60208301846155f456fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212203a1d7654540a3a59378fcb8f0dc45727b0865d15b2835f5c00ae74b9a4b3506964736f6c63430008180033","nonce":10,"gas_used":5159999},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4ebc3f","logs":[{"address":"0x610178da211fef7d417bc0e6fed39f05609ad788","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x512c15c3770e645be22b8b577a2116eae30b1a28221ddff3feb06ada33df8b1c","block_number":6},{"info":{"transaction_hash":"0xd14c06b4d9731210486a28a884867866f1add0d449e1f015aca6bc1b351a1850","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6101806040523060805234801561001557600080fd5b506040805180820182526007815266105b1a59db995960ca1b602080830191909152825180840190935260018352603160f81b90830152906100598261011661010e565b610140526100698161011761010e565b61016052815160208084019190912061010052815190820120610120524660c0526100f86101005161012051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60a05250503060e052610109610141565b61040f565b600060208351101561012a5761012383610202565b905061013b565b8161013584826102df565b5060ff90505b92915050565b600054610100900460ff16156101ae5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084015b60405180910390fd5b60005460ff9081161015610200576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b600080829050601f8151111561022d578260405163305a27a960e01b81526004016101a5919061039d565b8051610238826103eb565b179392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061026a57607f821691505b60208210810361028a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156102da57806000526020600020601f840160051c810160208510156102b75750805b601f840160051c820191505b818110156102d757600081556001016102c3565b50505b505050565b81516001600160401b038111156102f8576102f8610240565b61030c816103068454610256565b84610290565b6020601f82116001811461034057600083156103285750848201515b600019600385901b1c1916600184901b1784556102d7565b600084815260208120601f198516915b828110156103705787850151825560209485019460019092019101610350565b508482101561038e5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b602081526000825180602084015260005b818110156103cb57602081860181015160408684010152016103ae565b506000604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561028a5760001960209190910360031b1b16919050565b60805160a05160c05160e051610100516101205161014051610160516128f861049060003960006113800152600061134d01526000611dc801526000611da001526000611cfb01526000611d2501526000611d4f0152600081816106a2015281816106e201528181610793015281816107d3015261090a01526128f86000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d15780638da5cb5b1161008a578063c891091311610064578063c8910913146104af578063df5ffbc614610506578063f2fde38b14610526578063f83d08ba1461054657600080fd5b80638da5cb5b1461045c578063953ef8071461047a578063a69df4b51461049a57600080fd5b8063715018a6146103be57806373e289d0146103d357806379225985146103e95780637cb3805a146103ff5780638456cb591461041f57806384b0196e1461043457600080fd5b80634f1ef286116101235780634f1ef286146102fb57806352be56291461030e57806352d1902d1461032e57806358b96e27146103435780635c975abb1461037b57806363acc14d1461039e57600080fd5b806317d89c4e146101e95780632df4e21e146102355780632e1a7d4d1461026b5780633659cfe61461028d5780633f4ba83a146102ad5780634d5431ea146102c257600080fd5b366101e45733600090815260fd60205260408120805434929061018e908490612179565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770906101da9034815260200190565b60405180910390a2005b600080fd5b3480156101f557600080fd5b506102226102043660046121a1565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561024157600080fd5b506102226102503660046121a1565b6001600160a01b0316600090815260fd602052604090205490565b34801561027757600080fd5b5061028b6102863660046121be565b61055b565b005b34801561029957600080fd5b5061028b6102a83660046121a1565b610698565b3480156102b957600080fd5b5061028b610777565b3480156102ce57600080fd5b506102226102dd3660046121a1565b6001600160a01b0316600090815260fd602052604090206001015490565b61028b6103093660046121ed565b610789565b34801561031a57600080fd5b5061028b6103293660046121be565b610859565b34801561033a57600080fd5b506102226108fd565b34801561034f57600080fd5b5060fc54610363906001600160a01b031681565b6040516001600160a01b03909116815260200161022c565b34801561038757600080fd5b5060655460ff16604051901515815260200161022c565b3480156103aa57600080fd5b5061028b6103b93660046122b9565b6109b0565b3480156103ca57600080fd5b5061028b610bb1565b3480156103df57600080fd5b50610222610e1081565b3480156103f557600080fd5b5061022260fe5481565b34801561040b57600080fd5b5061028b61041a3660046121be565b610bc3565b34801561042b57600080fd5b5061028b610bd0565b34801561044057600080fd5b50610449610be0565b60405161022c979695949392919061235a565b34801561046857600080fd5b506033546001600160a01b0316610363565b34801561048657600080fd5b5060fb54610363906001600160a01b031681565b3480156104a657600080fd5b5061028b610c26565b3480156104bb57600080fd5b506104eb6104ca3660046121a1565b60fd6020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161022c565b34801561051257600080fd5b5061028b610521366004612437565b610cbd565b34801561053257600080fd5b5061028b6105413660046121a1565b610f0b565b34801561055257600080fd5b5061028b610f81565b610563610ff7565b33600090815260fd6020526040902080548211156105a65780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105ba5750428160010154115b156105e7576001810154604051635f6e272d60e11b8152600481019190915242602482015260440161059d565b818160000160008282546105fb9190612533565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f1935050505015801561065e573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106e05760405162461bcd60e51b815260040161059d90612546565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661072960008051602061287c833981519152546001600160a01b031690565b6001600160a01b03161461074f5760405162461bcd60e51b815260040161059d90612592565b6107588161103d565b6040805160008082526020820190925261077491839190611045565b50565b61077f6111b5565b61078761120f565b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107d15760405162461bcd60e51b815260040161059d90612546565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661081a60008051602061287c833981519152546001600160a01b031690565b6001600160a01b0316146108405760405162461bcd60e51b815260040161059d90612592565b6108498261103d565b61085582826001611045565b5050565b600054600290610100900460ff1615801561087b575060005460ff8083169116105b6108975760405162461bcd60e51b815260040161059d906125de565b6000805461ffff191660ff8316176101001790556108b36111b5565b60fe8290556000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461099d5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161059d565b5060008051602061287c83398151915290565b600054610100900460ff16158080156109d05750600054600160ff909116105b806109ea5750303b1580156109ea575060005460ff166001145b610a065760405162461bcd60e51b815260040161059d906125de565b6000805460ff191660011790558015610a29576000805461ff0019166101001790555b6001600160a01b038516610a7857604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b604482015260640161059d565b6001600160a01b038416610acf57604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e6572000000000000604482015260640161059d565b6001600160a01b038316610b1657604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b604482015260640161059d565b610b1e611261565b610b26611290565b610b2f846112b7565b60fb80546001600160a01b038088166001600160a01b03199283161790925560fc80549286169290911691909117905560fe8290558015610baa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610bb96111b5565b61078760006112b7565b610bcb6111b5565b60fe55565b610bd86111b5565b610787611309565b600060608060008060006060610bf4611346565b610bfc611379565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b610c2e610ff7565b33600090815260fd60205260408120549003610c5f5760405163b38340cf60e01b815233600482015260240161059d565b610c6b610e1042612179565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed84391610cb391815260200190565b60405180910390a2565b60fc546001600160a01b03163314610cea576040516302a5785160e31b815233600482015260240161059d565b610cf2610ff7565b85846000829003610d165760405163e5180e0360e01b815260040160405180910390fd5b80600003610d3757604051630c9d0b0160e21b815260040160405180910390fd5b80821015610d625760405163320f0a1b60e01b8152600481018390526024810182905260440161059d565b610d6d600183612533565b821615610d9057604051636b1651e160e01b81526004810183905260240161059d565b83600003610db1576040516351d432c560e11b815260040160405180910390fd5b84610dbc828661262c565b11610dee5784610dcc828661262c565b604051637899ec7160e01b81526004810192909252602482015260440161059d565b610dfc89898e8a8a896113a7565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663d66eaabd868e8e8e886040518663ffffffff1660e01b8152600401610e449493929190612643565b6000604051808303818588803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b50505050508b7f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375885604051610ea891815260200190565b60405180910390a260fc546001600160a01b03166108fc86610eca848861262c565b610ed49190612533565b6040518115909202916000818181858888f19350505050158015610efc573d6000803e3d6000fd5b50505050505050505050505050565b610f136111b5565b6001600160a01b038116610f785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161059d565b610774816112b7565b610f89610ff7565b33600090815260fd60205260408120549003610fba5760405163366095e160e11b815233600482015260240161059d565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156107875760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161059d565b6107746111b5565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561107d5761107883611737565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156110d7575060408051601f3d908101601f191682019092526110d491810190612683565b60015b61113a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161059d565b60008051602061287c83398151915281146111a95760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161059d565b506110788383836117d3565b6033546001600160a01b031633146107875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059d565b6112176117fe565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff166112885760405162461bcd60e51b815260040161059d9061269c565b610787611847565b600054610100900460ff166107875760405162461bcd60e51b815260040161059d9061269c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611311610ff7565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112443390565b60606113747f0000000000000000000000000000000000000000000000000000000000000000610116611877565b905090565b60606113747f0000000000000000000000000000000000000000000000000000000000000000610117611877565b60006113b46002876126e7565b905060008167ffffffffffffffff8111156113d1576113d16121d7565b6040519080825280602002602001820160405280156113fa578160200160208202803683370190505b50905060005b828163ffffffff16101561152557888861141b836002612709565b63ffffffff168181106114305761143061272f565b9050602002013589898360026114469190612709565b611451906001612745565b63ffffffff168181106114665761146661272f565b90506020020135604051602001611487929190918252602082015260400190565b60405160208183030381529060405280519060200120828263ffffffff16815181106114b5576114b561272f565b60200260200101818152505061151389898363ffffffff168181106114dc576114dc61272f565b9050602002013587878463ffffffff168181106114fb576114fb61272f565b905060200281019061150d9190612761565b86611924565b8061151d81612781565b915050611400565b63ffffffff81168511156115605761154e89898363ffffffff168181106114dc576114dc61272f565b8061155881612781565b915050611525565b61156b6002846126e7565b92505b821561165e575060005b828163ffffffff16101561164c5781611592826002612709565b63ffffffff16815181106115a8576115a861272f565b6020026020010151828260026115be9190612709565b6115c9906001612745565b63ffffffff16815181106115df576115df61272f565b6020026020010151604051602001611601929190918252602082015260400190565b60405160208183030381529060405280519060200120828263ffffffff168151811061162f5761162f61272f565b60209081029190910101528061164481612781565b915050611578565b6116576002846126e7565b925061156e565b60018890036116cb57868989600081811061167b5761167b61272f565b90506020020135146116c657868989600081811061169b5761169b61272f565b905060200201356040516327c4ed9760e21b815260040161059d929190918252602082015260400190565b61172c565b86826000815181106116df576116df61272f565b60200260200101511461172c5786826000815181106117005761170061272f565b60200260200101516040516327c4ed9760e21b815260040161059d929190918252602082015260400190565b505050505050505050565b6001600160a01b0381163b6117a45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161059d565b60008051602061287c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6117dc83611ac2565b6000825111806117e95750805b15611078576117f88383611b02565b50505050565b60655460ff166107875760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161059d565b600054610100900460ff1661186e5760405162461bcd60e51b815260040161059d9061269c565b610787336112b7565b606060ff83146118915761188a83611bf6565b905061191e565b81805461189d906127a6565b80601f01602080910402602001604051908101604052809291908181526020018280546118c9906127a6565b80156119165780601f106118eb57610100808354040283529160200191611916565b820191906000526020600020905b8154815290600101906020018083116118f957829003601f168201915b505050505090505b92915050565b80826040013510156119565760408051637acd6fa560e11b81529083013560048201526024810182905260440161059d565b60fe5460408051602081810193909352808201869052918401356060830152830135608082015260009060a00160405160208183030381529060405280519060200120905060006119a682611c35565b905060006119f2826119b887806127e0565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c6292505050565b6001600160a01b038116600090815260fd602090815260409091206002810154929350919087013514611a4b5760028101546040516306427aeb60e01b815260048101919091526020870135602482015260440161059d565b600281018054906000611a5d83612827565b90915550508054851115611aa0578054604051632557019960e21b81526001600160a01b038416600482015260248101919091526044810186905260640161059d565b84816000016000828254611ab49190612533565b909155505050505050505050565b611acb81611737565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611b6a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161059d565b600080846001600160a01b031684604051611b859190612840565b600060405180830381855af49150503d8060008114611bc0576040519150601f19603f3d011682016040523d82523d6000602084013e611bc5565b606091505b5091509150611bed828260405180606001604052806027815260200161289c60279139611c86565b95945050505050565b60606000611c0383611cc6565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600061191e611c42611cee565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000611c718585611e19565b91509150611c7e81611e87565b509392505050565b60608315611c95575081611cbf565b825115611ca55782518084602001fd5b8160405162461bcd60e51b815260040161059d9190612852565b9392505050565b600060ff8216601f81111561191e57604051632cd44ac360e21b815260040160405180910390fd5b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611d4757507f000000000000000000000000000000000000000000000000000000000000000046145b15611d7157507f000000000000000000000000000000000000000000000000000000000000000090565b611374604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6000808251604103611e4f5760208301516040840151606085015160001a611e438782858561203d565b94509450505050611e80565b8251604003611e785760208301516040840151611e6d86838361212a565b935093505050611e80565b506000905060025b9250929050565b6000816004811115611e9b57611e9b612865565b03611ea35750565b6001816004811115611eb757611eb7612865565b03611f045760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161059d565b6002816004811115611f1857611f18612865565b03611f655760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161059d565b6003816004811115611f7957611f79612865565b03611fd15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161059d565b6004816004811115611fe557611fe5612865565b036107745760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161059d565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156120745750600090506003612121565b8460ff16601b1415801561208c57508460ff16601c14155b1561209d5750600090506004612121565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156120f1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661211a57600060019250925050612121565b9150600090505b94509492505050565b6000806001600160ff1b0383168161214760ff86901c601b612179565b90506121558782888561203d565b935093505050935093915050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561191e5761191e612163565b6001600160a01b038116811461077457600080fd5b6000602082840312156121b357600080fd5b8135611cbf8161218c565b6000602082840312156121d057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561220057600080fd5b823561220b8161218c565b9150602083013567ffffffffffffffff81111561222757600080fd5b8301601f8101851361223857600080fd5b803567ffffffffffffffff811115612252576122526121d7565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612281576122816121d7565b60405281815282820160200187101561229957600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080608085870312156122cf57600080fd5b84356122da8161218c565b935060208501356122ea8161218c565b925060408501356122fa8161218c565b9396929550929360600135925050565b60005b8381101561232557818101518382015260200161230d565b50506000910152565b6000815180845261234681602086016020860161230a565b601f01601f19169290920160200192915050565b60ff60f81b8816815260e06020820152600061237960e083018961232e565b828103604084015261238b818961232e565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b818110156123e15783518352602093840193909201916001016123c3565b50909b9a5050505050505050505050565b60008083601f84011261240457600080fd5b50813567ffffffffffffffff81111561241c57600080fd5b6020830191508360208260051b8501011115611e8057600080fd5b60008060008060008060008060008060e08b8d03121561245657600080fd5b8a35995060208b013567ffffffffffffffff81111561247457600080fd5b8b01601f81018d1361248557600080fd5b803567ffffffffffffffff81111561249c57600080fd5b8d60208284010111156124ae57600080fd5b6020919091019950975060408b013567ffffffffffffffff8111156124d257600080fd5b6124de8d828e016123f2565b90985096505060608b013567ffffffffffffffff8111156124fe57600080fd5b61250a8d828e016123f2565b9b9e9a9d50989b979a9699969760808101359760a0820135975060c09091013595509350505050565b8181038181111561191e5761191e612163565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b808202811582820484141761191e5761191e612163565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561269557600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008261270457634e487b7160e01b600052601260045260246000fd5b500490565b63ffffffff818116838216029081169081811461272857612728612163565b5092915050565b634e487b7160e01b600052603260045260246000fd5b63ffffffff818116838216019081111561191e5761191e612163565b60008235605e1983360301811261277757600080fd5b9190910192915050565b600063ffffffff821663ffffffff810361279d5761279d612163565b60010192915050565b600181811c908216806127ba57607f821691505b6020821081036127da57634e487b7160e01b600052602260045260246000fd5b50919050565b6000808335601e198436030181126127f757600080fd5b83018035915067ffffffffffffffff82111561281257600080fd5b602001915036819003821315611e8057600080fd5b60006001820161283957612839612163565b5060010190565b6000825161277781846020870161230a565b602081526000611cbf602083018461232e565b634e487b7160e01b600052602160045260246000fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a176afed95ec44814e895f65d4f2718db626e3857cc95c54389c7913953d67bf64736f6c634300081b0033","output":"0x60806040526004361061016a5760003560e01c8063715018a6116100d15780638da5cb5b1161008a578063c891091311610064578063c8910913146104af578063df5ffbc614610506578063f2fde38b14610526578063f83d08ba1461054657600080fd5b80638da5cb5b1461045c578063953ef8071461047a578063a69df4b51461049a57600080fd5b8063715018a6146103be57806373e289d0146103d357806379225985146103e95780637cb3805a146103ff5780638456cb591461041f57806384b0196e1461043457600080fd5b80634f1ef286116101235780634f1ef286146102fb57806352be56291461030e57806352d1902d1461032e57806358b96e27146103435780635c975abb1461037b57806363acc14d1461039e57600080fd5b806317d89c4e146101e95780632df4e21e146102355780632e1a7d4d1461026b5780633659cfe61461028d5780633f4ba83a146102ad5780634d5431ea146102c257600080fd5b366101e45733600090815260fd60205260408120805434929061018e908490612179565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770906101da9034815260200190565b60405180910390a2005b600080fd5b3480156101f557600080fd5b506102226102043660046121a1565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561024157600080fd5b506102226102503660046121a1565b6001600160a01b0316600090815260fd602052604090205490565b34801561027757600080fd5b5061028b6102863660046121be565b61055b565b005b34801561029957600080fd5b5061028b6102a83660046121a1565b610698565b3480156102b957600080fd5b5061028b610777565b3480156102ce57600080fd5b506102226102dd3660046121a1565b6001600160a01b0316600090815260fd602052604090206001015490565b61028b6103093660046121ed565b610789565b34801561031a57600080fd5b5061028b6103293660046121be565b610859565b34801561033a57600080fd5b506102226108fd565b34801561034f57600080fd5b5060fc54610363906001600160a01b031681565b6040516001600160a01b03909116815260200161022c565b34801561038757600080fd5b5060655460ff16604051901515815260200161022c565b3480156103aa57600080fd5b5061028b6103b93660046122b9565b6109b0565b3480156103ca57600080fd5b5061028b610bb1565b3480156103df57600080fd5b50610222610e1081565b3480156103f557600080fd5b5061022260fe5481565b34801561040b57600080fd5b5061028b61041a3660046121be565b610bc3565b34801561042b57600080fd5b5061028b610bd0565b34801561044057600080fd5b50610449610be0565b60405161022c979695949392919061235a565b34801561046857600080fd5b506033546001600160a01b0316610363565b34801561048657600080fd5b5060fb54610363906001600160a01b031681565b3480156104a657600080fd5b5061028b610c26565b3480156104bb57600080fd5b506104eb6104ca3660046121a1565b60fd6020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161022c565b34801561051257600080fd5b5061028b610521366004612437565b610cbd565b34801561053257600080fd5b5061028b6105413660046121a1565b610f0b565b34801561055257600080fd5b5061028b610f81565b610563610ff7565b33600090815260fd6020526040902080548211156105a65780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105ba5750428160010154115b156105e7576001810154604051635f6e272d60e11b8152600481019190915242602482015260440161059d565b818160000160008282546105fb9190612533565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f1935050505015801561065e573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036106e05760405162461bcd60e51b815260040161059d90612546565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b031661072960008051602061287c833981519152546001600160a01b031690565b6001600160a01b03161461074f5760405162461bcd60e51b815260040161059d90612592565b6107588161103d565b6040805160008082526020820190925261077491839190611045565b50565b61077f6111b5565b61078761120f565b565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036107d15760405162461bcd60e51b815260040161059d90612546565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b031661081a60008051602061287c833981519152546001600160a01b031690565b6001600160a01b0316146108405760405162461bcd60e51b815260040161059d90612592565b6108498261103d565b61085582826001611045565b5050565b600054600290610100900460ff1615801561087b575060005460ff8083169116105b6108975760405162461bcd60e51b815260040161059d906125de565b6000805461ffff191660ff8316176101001790556108b36111b5565b60fe8290556000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000306001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3161461099d5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161059d565b5060008051602061287c83398151915290565b600054610100900460ff16158080156109d05750600054600160ff909116105b806109ea5750303b1580156109ea575060005460ff166001145b610a065760405162461bcd60e51b815260040161059d906125de565b6000805460ff191660011790558015610a29576000805461ff0019166101001790555b6001600160a01b038516610a7857604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b604482015260640161059d565b6001600160a01b038416610acf57604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e6572000000000000604482015260640161059d565b6001600160a01b038316610b1657604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b604482015260640161059d565b610b1e611261565b610b26611290565b610b2f846112b7565b60fb80546001600160a01b038088166001600160a01b03199283161790925560fc80549286169290911691909117905560fe8290558015610baa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610bb96111b5565b61078760006112b7565b610bcb6111b5565b60fe55565b610bd86111b5565b610787611309565b600060608060008060006060610bf4611346565b610bfc611379565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b610c2e610ff7565b33600090815260fd60205260408120549003610c5f5760405163b38340cf60e01b815233600482015260240161059d565b610c6b610e1042612179565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed84391610cb391815260200190565b60405180910390a2565b60fc546001600160a01b03163314610cea576040516302a5785160e31b815233600482015260240161059d565b610cf2610ff7565b85846000829003610d165760405163e5180e0360e01b815260040160405180910390fd5b80600003610d3757604051630c9d0b0160e21b815260040160405180910390fd5b80821015610d625760405163320f0a1b60e01b8152600481018390526024810182905260440161059d565b610d6d600183612533565b821615610d9057604051636b1651e160e01b81526004810183905260240161059d565b83600003610db1576040516351d432c560e11b815260040160405180910390fd5b84610dbc828661262c565b11610dee5784610dcc828661262c565b604051637899ec7160e01b81526004810192909252602482015260440161059d565b610dfc89898e8a8a896113a7565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663d66eaabd868e8e8e886040518663ffffffff1660e01b8152600401610e449493929190612643565b6000604051808303818588803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b50505050508b7f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375885604051610ea891815260200190565b60405180910390a260fc546001600160a01b03166108fc86610eca848861262c565b610ed49190612533565b6040518115909202916000818181858888f19350505050158015610efc573d6000803e3d6000fd5b50505050505050505050505050565b610f136111b5565b6001600160a01b038116610f785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161059d565b610774816112b7565b610f89610ff7565b33600090815260fd60205260408120549003610fba5760405163366095e160e11b815233600482015260240161059d565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156107875760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161059d565b6107746111b5565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561107d5761107883611737565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156110d7575060408051601f3d908101601f191682019092526110d491810190612683565b60015b61113a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161059d565b60008051602061287c83398151915281146111a95760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161059d565b506110788383836117d3565b6033546001600160a01b031633146107875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059d565b6112176117fe565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff166112885760405162461bcd60e51b815260040161059d9061269c565b610787611847565b600054610100900460ff166107875760405162461bcd60e51b815260040161059d9061269c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611311610ff7565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112443390565b60606113747f416c69676e656400000000000000000000000000000000000000000000000007610116611877565b905090565b60606113747f3100000000000000000000000000000000000000000000000000000000000001610117611877565b60006113b46002876126e7565b905060008167ffffffffffffffff8111156113d1576113d16121d7565b6040519080825280602002602001820160405280156113fa578160200160208202803683370190505b50905060005b828163ffffffff16101561152557888861141b836002612709565b63ffffffff168181106114305761143061272f565b9050602002013589898360026114469190612709565b611451906001612745565b63ffffffff168181106114665761146661272f565b90506020020135604051602001611487929190918252602082015260400190565b60405160208183030381529060405280519060200120828263ffffffff16815181106114b5576114b561272f565b60200260200101818152505061151389898363ffffffff168181106114dc576114dc61272f565b9050602002013587878463ffffffff168181106114fb576114fb61272f565b905060200281019061150d9190612761565b86611924565b8061151d81612781565b915050611400565b63ffffffff81168511156115605761154e89898363ffffffff168181106114dc576114dc61272f565b8061155881612781565b915050611525565b61156b6002846126e7565b92505b821561165e575060005b828163ffffffff16101561164c5781611592826002612709565b63ffffffff16815181106115a8576115a861272f565b6020026020010151828260026115be9190612709565b6115c9906001612745565b63ffffffff16815181106115df576115df61272f565b6020026020010151604051602001611601929190918252602082015260400190565b60405160208183030381529060405280519060200120828263ffffffff168151811061162f5761162f61272f565b60209081029190910101528061164481612781565b915050611578565b6116576002846126e7565b925061156e565b60018890036116cb57868989600081811061167b5761167b61272f565b90506020020135146116c657868989600081811061169b5761169b61272f565b905060200201356040516327c4ed9760e21b815260040161059d929190918252602082015260400190565b61172c565b86826000815181106116df576116df61272f565b60200260200101511461172c5786826000815181106117005761170061272f565b60200260200101516040516327c4ed9760e21b815260040161059d929190918252602082015260400190565b505050505050505050565b6001600160a01b0381163b6117a45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161059d565b60008051602061287c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6117dc83611ac2565b6000825111806117e95750805b15611078576117f88383611b02565b50505050565b60655460ff166107875760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161059d565b600054610100900460ff1661186e5760405162461bcd60e51b815260040161059d9061269c565b610787336112b7565b606060ff83146118915761188a83611bf6565b905061191e565b81805461189d906127a6565b80601f01602080910402602001604051908101604052809291908181526020018280546118c9906127a6565b80156119165780601f106118eb57610100808354040283529160200191611916565b820191906000526020600020905b8154815290600101906020018083116118f957829003601f168201915b505050505090505b92915050565b80826040013510156119565760408051637acd6fa560e11b81529083013560048201526024810182905260440161059d565b60fe5460408051602081810193909352808201869052918401356060830152830135608082015260009060a00160405160208183030381529060405280519060200120905060006119a682611c35565b905060006119f2826119b887806127e0565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c6292505050565b6001600160a01b038116600090815260fd602090815260409091206002810154929350919087013514611a4b5760028101546040516306427aeb60e01b815260048101919091526020870135602482015260440161059d565b600281018054906000611a5d83612827565b90915550508054851115611aa0578054604051632557019960e21b81526001600160a01b038416600482015260248101919091526044810186905260640161059d565b84816000016000828254611ab49190612533565b909155505050505050505050565b611acb81611737565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611b6a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161059d565b600080846001600160a01b031684604051611b859190612840565b600060405180830381855af49150503d8060008114611bc0576040519150601f19603f3d011682016040523d82523d6000602084013e611bc5565b606091505b5091509150611bed828260405180606001604052806027815260200161289c60279139611c86565b95945050505050565b60606000611c0383611cc6565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600061191e611c42611cee565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000611c718585611e19565b91509150611c7e81611e87565b509392505050565b60608315611c95575081611cbf565b825115611ca55782518084602001fd5b8160405162461bcd60e51b815260040161059d9190612852565b9392505050565b600060ff8216601f81111561191e57604051632cd44ac360e21b815260040160405180910390fd5b6000306001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba316148015611d4757507f0000000000000000000000000000000000000000000000000000000000007a6946145b15611d7157507f994ed1746c3df72f34b6debe24c32ca2b9d17cd5406a9ed1381920d0c72d7a0b90565b611374604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f95e689cfc15cb3a505d84daa940120af738f97fc8621aa93523d07e331753beb918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6000808251604103611e4f5760208301516040840151606085015160001a611e438782858561203d565b94509450505050611e80565b8251604003611e785760208301516040840151611e6d86838361212a565b935093505050611e80565b506000905060025b9250929050565b6000816004811115611e9b57611e9b612865565b03611ea35750565b6001816004811115611eb757611eb7612865565b03611f045760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161059d565b6002816004811115611f1857611f18612865565b03611f655760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161059d565b6003816004811115611f7957611f79612865565b03611fd15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161059d565b6004816004811115611fe557611fe5612865565b036107745760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161059d565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156120745750600090506003612121565b8460ff16601b1415801561208c57508460ff16601c14155b1561209d5750600090506004612121565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156120f1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661211a57600060019250925050612121565b9150600090505b94509492505050565b6000806001600160ff1b0383168161214760ff86901c601b612179565b90506121558782888561203d565b935093505050935093915050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561191e5761191e612163565b6001600160a01b038116811461077457600080fd5b6000602082840312156121b357600080fd5b8135611cbf8161218c565b6000602082840312156121d057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561220057600080fd5b823561220b8161218c565b9150602083013567ffffffffffffffff81111561222757600080fd5b8301601f8101851361223857600080fd5b803567ffffffffffffffff811115612252576122526121d7565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612281576122816121d7565b60405281815282820160200187101561229957600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080608085870312156122cf57600080fd5b84356122da8161218c565b935060208501356122ea8161218c565b925060408501356122fa8161218c565b9396929550929360600135925050565b60005b8381101561232557818101518382015260200161230d565b50506000910152565b6000815180845261234681602086016020860161230a565b601f01601f19169290920160200192915050565b60ff60f81b8816815260e06020820152600061237960e083018961232e565b828103604084015261238b818961232e565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b818110156123e15783518352602093840193909201916001016123c3565b50909b9a5050505050505050505050565b60008083601f84011261240457600080fd5b50813567ffffffffffffffff81111561241c57600080fd5b6020830191508360208260051b8501011115611e8057600080fd5b60008060008060008060008060008060e08b8d03121561245657600080fd5b8a35995060208b013567ffffffffffffffff81111561247457600080fd5b8b01601f81018d1361248557600080fd5b803567ffffffffffffffff81111561249c57600080fd5b8d60208284010111156124ae57600080fd5b6020919091019950975060408b013567ffffffffffffffff8111156124d257600080fd5b6124de8d828e016123f2565b90985096505060608b013567ffffffffffffffff8111156124fe57600080fd5b61250a8d828e016123f2565b9b9e9a9d50989b979a9699969760808101359760a0820135975060c09091013595509350505050565b8181038181111561191e5761191e612163565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b808202811582820484141761191e5761191e612163565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561269557600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008261270457634e487b7160e01b600052601260045260246000fd5b500490565b63ffffffff818116838216029081169081811461272857612728612163565b5092915050565b634e487b7160e01b600052603260045260246000fd5b63ffffffff818116838216019081111561191e5761191e612163565b60008235605e1983360301811261277757600080fd5b9190910192915050565b600063ffffffff821663ffffffff810361279d5761279d612163565b60010192915050565b600181811c908216806127ba57607f821691505b6020821081036127da57634e487b7160e01b600052602260045260246000fd5b50919050565b6000808335601e198436030181126127f757600080fd5b83018035915067ffffffffffffffff82111561281257600080fd5b602001915036819003821315611e8057600080fd5b60006001820161283957612839612163565b5060010190565b6000825161277781846020870161230a565b602081526000611cbf602083018461232e565b634e487b7160e01b600052602160045260246000fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a176afed95ec44814e895f65d4f2718db626e3857cc95c54389c7913953d67bf64736f6c634300081b0033","gas_used":2124652,"gas_limit":2830772,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361061016a5760003560e01c8063715018a6116100d15780638da5cb5b1161008a578063c891091311610064578063c8910913146104af578063df5ffbc614610506578063f2fde38b14610526578063f83d08ba1461054657600080fd5b80638da5cb5b1461045c578063953ef8071461047a578063a69df4b51461049a57600080fd5b8063715018a6146103be57806373e289d0146103d357806379225985146103e95780637cb3805a146103ff5780638456cb591461041f57806384b0196e1461043457600080fd5b80634f1ef286116101235780634f1ef286146102fb57806352be56291461030e57806352d1902d1461032e57806358b96e27146103435780635c975abb1461037b57806363acc14d1461039e57600080fd5b806317d89c4e146101e95780632df4e21e146102355780632e1a7d4d1461026b5780633659cfe61461028d5780633f4ba83a146102ad5780634d5431ea146102c257600080fd5b366101e45733600090815260fd60205260408120805434929061018e908490612179565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770906101da9034815260200190565b60405180910390a2005b600080fd5b3480156101f557600080fd5b506102226102043660046121a1565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561024157600080fd5b506102226102503660046121a1565b6001600160a01b0316600090815260fd602052604090205490565b34801561027757600080fd5b5061028b6102863660046121be565b61055b565b005b34801561029957600080fd5b5061028b6102a83660046121a1565b610698565b3480156102b957600080fd5b5061028b610777565b3480156102ce57600080fd5b506102226102dd3660046121a1565b6001600160a01b0316600090815260fd602052604090206001015490565b61028b6103093660046121ed565b610789565b34801561031a57600080fd5b5061028b6103293660046121be565b610859565b34801561033a57600080fd5b506102226108fd565b34801561034f57600080fd5b5060fc54610363906001600160a01b031681565b6040516001600160a01b03909116815260200161022c565b34801561038757600080fd5b5060655460ff16604051901515815260200161022c565b3480156103aa57600080fd5b5061028b6103b93660046122b9565b6109b0565b3480156103ca57600080fd5b5061028b610bb1565b3480156103df57600080fd5b50610222610e1081565b3480156103f557600080fd5b5061022260fe5481565b34801561040b57600080fd5b5061028b61041a3660046121be565b610bc3565b34801561042b57600080fd5b5061028b610bd0565b34801561044057600080fd5b50610449610be0565b60405161022c979695949392919061235a565b34801561046857600080fd5b506033546001600160a01b0316610363565b34801561048657600080fd5b5060fb54610363906001600160a01b031681565b3480156104a657600080fd5b5061028b610c26565b3480156104bb57600080fd5b506104eb6104ca3660046121a1565b60fd6020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161022c565b34801561051257600080fd5b5061028b610521366004612437565b610cbd565b34801561053257600080fd5b5061028b6105413660046121a1565b610f0b565b34801561055257600080fd5b5061028b610f81565b610563610ff7565b33600090815260fd6020526040902080548211156105a65780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105ba5750428160010154115b156105e7576001810154604051635f6e272d60e11b8152600481019190915242602482015260440161059d565b818160000160008282546105fb9190612533565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f1935050505015801561065e573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036106e05760405162461bcd60e51b815260040161059d90612546565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b031661072960008051602061287c833981519152546001600160a01b031690565b6001600160a01b03161461074f5760405162461bcd60e51b815260040161059d90612592565b6107588161103d565b6040805160008082526020820190925261077491839190611045565b50565b61077f6111b5565b61078761120f565b565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036107d15760405162461bcd60e51b815260040161059d90612546565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b031661081a60008051602061287c833981519152546001600160a01b031690565b6001600160a01b0316146108405760405162461bcd60e51b815260040161059d90612592565b6108498261103d565b61085582826001611045565b5050565b600054600290610100900460ff1615801561087b575060005460ff8083169116105b6108975760405162461bcd60e51b815260040161059d906125de565b6000805461ffff191660ff8316176101001790556108b36111b5565b60fe8290556000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000306001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3161461099d5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161059d565b5060008051602061287c83398151915290565b600054610100900460ff16158080156109d05750600054600160ff909116105b806109ea5750303b1580156109ea575060005460ff166001145b610a065760405162461bcd60e51b815260040161059d906125de565b6000805460ff191660011790558015610a29576000805461ff0019166101001790555b6001600160a01b038516610a7857604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b604482015260640161059d565b6001600160a01b038416610acf57604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e6572000000000000604482015260640161059d565b6001600160a01b038316610b1657604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b604482015260640161059d565b610b1e611261565b610b26611290565b610b2f846112b7565b60fb80546001600160a01b038088166001600160a01b03199283161790925560fc80549286169290911691909117905560fe8290558015610baa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610bb96111b5565b61078760006112b7565b610bcb6111b5565b60fe55565b610bd86111b5565b610787611309565b600060608060008060006060610bf4611346565b610bfc611379565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b610c2e610ff7565b33600090815260fd60205260408120549003610c5f5760405163b38340cf60e01b815233600482015260240161059d565b610c6b610e1042612179565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed84391610cb391815260200190565b60405180910390a2565b60fc546001600160a01b03163314610cea576040516302a5785160e31b815233600482015260240161059d565b610cf2610ff7565b85846000829003610d165760405163e5180e0360e01b815260040160405180910390fd5b80600003610d3757604051630c9d0b0160e21b815260040160405180910390fd5b80821015610d625760405163320f0a1b60e01b8152600481018390526024810182905260440161059d565b610d6d600183612533565b821615610d9057604051636b1651e160e01b81526004810183905260240161059d565b83600003610db1576040516351d432c560e11b815260040160405180910390fd5b84610dbc828661262c565b11610dee5784610dcc828661262c565b604051637899ec7160e01b81526004810192909252602482015260440161059d565b610dfc89898e8a8a896113a7565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663d66eaabd868e8e8e886040518663ffffffff1660e01b8152600401610e449493929190612643565b6000604051808303818588803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b50505050508b7f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375885604051610ea891815260200190565b60405180910390a260fc546001600160a01b03166108fc86610eca848861262c565b610ed49190612533565b6040518115909202916000818181858888f19350505050158015610efc573d6000803e3d6000fd5b50505050505050505050505050565b610f136111b5565b6001600160a01b038116610f785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161059d565b610774816112b7565b610f89610ff7565b33600090815260fd60205260408120549003610fba5760405163366095e160e11b815233600482015260240161059d565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156107875760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161059d565b6107746111b5565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561107d5761107883611737565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156110d7575060408051601f3d908101601f191682019092526110d491810190612683565b60015b61113a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161059d565b60008051602061287c83398151915281146111a95760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161059d565b506110788383836117d3565b6033546001600160a01b031633146107875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059d565b6112176117fe565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff166112885760405162461bcd60e51b815260040161059d9061269c565b610787611847565b600054610100900460ff166107875760405162461bcd60e51b815260040161059d9061269c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611311610ff7565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112443390565b60606113747f416c69676e656400000000000000000000000000000000000000000000000007610116611877565b905090565b60606113747f3100000000000000000000000000000000000000000000000000000000000001610117611877565b60006113b46002876126e7565b905060008167ffffffffffffffff8111156113d1576113d16121d7565b6040519080825280602002602001820160405280156113fa578160200160208202803683370190505b50905060005b828163ffffffff16101561152557888861141b836002612709565b63ffffffff168181106114305761143061272f565b9050602002013589898360026114469190612709565b611451906001612745565b63ffffffff168181106114665761146661272f565b90506020020135604051602001611487929190918252602082015260400190565b60405160208183030381529060405280519060200120828263ffffffff16815181106114b5576114b561272f565b60200260200101818152505061151389898363ffffffff168181106114dc576114dc61272f565b9050602002013587878463ffffffff168181106114fb576114fb61272f565b905060200281019061150d9190612761565b86611924565b8061151d81612781565b915050611400565b63ffffffff81168511156115605761154e89898363ffffffff168181106114dc576114dc61272f565b8061155881612781565b915050611525565b61156b6002846126e7565b92505b821561165e575060005b828163ffffffff16101561164c5781611592826002612709565b63ffffffff16815181106115a8576115a861272f565b6020026020010151828260026115be9190612709565b6115c9906001612745565b63ffffffff16815181106115df576115df61272f565b6020026020010151604051602001611601929190918252602082015260400190565b60405160208183030381529060405280519060200120828263ffffffff168151811061162f5761162f61272f565b60209081029190910101528061164481612781565b915050611578565b6116576002846126e7565b925061156e565b60018890036116cb57868989600081811061167b5761167b61272f565b90506020020135146116c657868989600081811061169b5761169b61272f565b905060200201356040516327c4ed9760e21b815260040161059d929190918252602082015260400190565b61172c565b86826000815181106116df576116df61272f565b60200260200101511461172c5786826000815181106117005761170061272f565b60200260200101516040516327c4ed9760e21b815260040161059d929190918252602082015260400190565b505050505050505050565b6001600160a01b0381163b6117a45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161059d565b60008051602061287c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6117dc83611ac2565b6000825111806117e95750805b15611078576117f88383611b02565b50505050565b60655460ff166107875760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161059d565b600054610100900460ff1661186e5760405162461bcd60e51b815260040161059d9061269c565b610787336112b7565b606060ff83146118915761188a83611bf6565b905061191e565b81805461189d906127a6565b80601f01602080910402602001604051908101604052809291908181526020018280546118c9906127a6565b80156119165780601f106118eb57610100808354040283529160200191611916565b820191906000526020600020905b8154815290600101906020018083116118f957829003601f168201915b505050505090505b92915050565b80826040013510156119565760408051637acd6fa560e11b81529083013560048201526024810182905260440161059d565b60fe5460408051602081810193909352808201869052918401356060830152830135608082015260009060a00160405160208183030381529060405280519060200120905060006119a682611c35565b905060006119f2826119b887806127e0565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c6292505050565b6001600160a01b038116600090815260fd602090815260409091206002810154929350919087013514611a4b5760028101546040516306427aeb60e01b815260048101919091526020870135602482015260440161059d565b600281018054906000611a5d83612827565b90915550508054851115611aa0578054604051632557019960e21b81526001600160a01b038416600482015260248101919091526044810186905260640161059d565b84816000016000828254611ab49190612533565b909155505050505050505050565b611acb81611737565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611b6a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161059d565b600080846001600160a01b031684604051611b859190612840565b600060405180830381855af49150503d8060008114611bc0576040519150601f19603f3d011682016040523d82523d6000602084013e611bc5565b606091505b5091509150611bed828260405180606001604052806027815260200161289c60279139611c86565b95945050505050565b60606000611c0383611cc6565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600061191e611c42611cee565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000611c718585611e19565b91509150611c7e81611e87565b509392505050565b60608315611c95575081611cbf565b825115611ca55782518084602001fd5b8160405162461bcd60e51b815260040161059d9190612852565b9392505050565b600060ff8216601f81111561191e57604051632cd44ac360e21b815260040160405180910390fd5b6000306001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba316148015611d4757507f0000000000000000000000000000000000000000000000000000000000007a6946145b15611d7157507f994ed1746c3df72f34b6debe24c32ca2b9d17cd5406a9ed1381920d0c72d7a0b90565b611374604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f95e689cfc15cb3a505d84daa940120af738f97fc8621aa93523d07e331753beb918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6000808251604103611e4f5760208301516040840151606085015160001a611e438782858561203d565b94509450505050611e80565b8251604003611e785760208301516040840151611e6d86838361212a565b935093505050611e80565b506000905060025b9250929050565b6000816004811115611e9b57611e9b612865565b03611ea35750565b6001816004811115611eb757611eb7612865565b03611f045760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161059d565b6002816004811115611f1857611f18612865565b03611f655760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161059d565b6003816004811115611f7957611f79612865565b03611fd15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161059d565b6004816004811115611fe557611fe5612865565b036107745760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161059d565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156120745750600090506003612121565b8460ff16601b1415801561208c57508460ff16601c14155b1561209d5750600090506004612121565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156120f1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661211a57600060019250925050612121565b9150600090505b94509492505050565b6000806001600160ff1b0383168161214760ff86901c601b612179565b90506121558782888561203d565b935093505050935093915050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561191e5761191e612163565b6001600160a01b038116811461077457600080fd5b6000602082840312156121b357600080fd5b8135611cbf8161218c565b6000602082840312156121d057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561220057600080fd5b823561220b8161218c565b9150602083013567ffffffffffffffff81111561222757600080fd5b8301601f8101851361223857600080fd5b803567ffffffffffffffff811115612252576122526121d7565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612281576122816121d7565b60405281815282820160200187101561229957600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080608085870312156122cf57600080fd5b84356122da8161218c565b935060208501356122ea8161218c565b925060408501356122fa8161218c565b9396929550929360600135925050565b60005b8381101561232557818101518382015260200161230d565b50506000910152565b6000815180845261234681602086016020860161230a565b601f01601f19169290920160200192915050565b60ff60f81b8816815260e06020820152600061237960e083018961232e565b828103604084015261238b818961232e565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b818110156123e15783518352602093840193909201916001016123c3565b50909b9a5050505050505050505050565b60008083601f84011261240457600080fd5b50813567ffffffffffffffff81111561241c57600080fd5b6020830191508360208260051b8501011115611e8057600080fd5b60008060008060008060008060008060e08b8d03121561245657600080fd5b8a35995060208b013567ffffffffffffffff81111561247457600080fd5b8b01601f81018d1361248557600080fd5b803567ffffffffffffffff81111561249c57600080fd5b8d60208284010111156124ae57600080fd5b6020919091019950975060408b013567ffffffffffffffff8111156124d257600080fd5b6124de8d828e016123f2565b90985096505060608b013567ffffffffffffffff8111156124fe57600080fd5b61250a8d828e016123f2565b9b9e9a9d50989b979a9699969760808101359760a0820135975060c09091013595509350505050565b8181038181111561191e5761191e612163565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b808202811582820484141761191e5761191e612163565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561269557600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008261270457634e487b7160e01b600052601260045260246000fd5b500490565b63ffffffff818116838216029081169081811461272857612728612163565b5092915050565b634e487b7160e01b600052603260045260246000fd5b63ffffffff818116838216019081111561191e5761191e612163565b60008235605e1983360301811261277757600080fd5b9190910192915050565b600063ffffffff821663ffffffff810361279d5761279d612163565b60010192915050565b600181811c908216806127ba57607f821691505b6020821081036127da57634e487b7160e01b600052602260045260246000fd5b50919050565b6000808335601e198436030181126127f757600080fd5b83018035915067ffffffffffffffff82111561281257600080fd5b602001915036819003821315611e8057600080fd5b60006001820161283957612839612163565b5060010190565b6000825161277781846020870161230a565b602081526000611cbf602083018461232e565b634e487b7160e01b600052602160045260246000fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a176afed95ec44814e895f65d4f2718db626e3857cc95c54389c7913953d67bf64736f6c634300081b0033","nonce":55,"gas_used":2356898},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x23f6a2","logs":[{"address":"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000100000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xa98d4cd4839b8b077682c09968841be27c533967045a3a117a9c457f91861423","block_number":12},{"info":{"transaction_hash":"0xcbafc94e8857199dcd5144397f51cf94e359c3a69d7be0293c2a5d9be0351ff7","transaction_index":4,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6101c060405234801561001157600080fd5b50604051615c76380380615c7683398101604081905261003091610248565b604080518082018252601681527f4156535265676973747279436f6f7264696e61746f720000000000000000000060208083019182528351808501909452600684526576302e302e3160d01b908401528151902060e08190527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a996101008190524660a05287938793879387939192917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61012f8184846040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6080523060c05261012052505050506001600160a01b039384166101405291831661018052821661016052166101a052610167610170565b505050506102a7565b600054610100900460ff16156101dc5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561022e576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461024557600080fd5b50565b6000806000806080858703121561025e57600080fd5b845161026981610230565b602086015190945061027a81610230565b604086015190935061028b81610230565b606086015190925061029c81610230565b939692955090935050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516158c86103ae6000396000818161074e0152818161113101528181611f0c01528181612b4a01528181613257015261367101526000818161069301528181611e970152818161233601528181612aca015281816131ae0152818161339f01526135f001526000818161065901528181610f0401528181611ed501528181612a4c01528181612c3201528181612cac0152818161312e01526136ed015260008181610571015281816129a20152613076015260006138f4015260006139430152600061391e01526000613877015260006138a1015260006138cb01526158c86000f3fe608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e6103393660046143e3565b610940565b005b61036061034e366004614424565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461444f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144ac565b610b5e565b61033e6103ea3660046145b4565b610b8a565b61033e6103fd366004614424565b610c34565b61033e6104103660046144ac565b610c41565b6103606104233660046144ac565b609f6020526000908152604090205481565b6103606104433660046144ac565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614424565b610cf4565b61049461047f366004614424565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614604565b610e31565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614637565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144ac565b610ec2565b6103b1610541366004614424565b610eeb565b61033e6105543660046144ac565b610f77565b61033e6105673660046144ac565b610f88565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6104946105a13660046144ac565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144ac565b610f99565b60405161036a9190614652565b61033e6105ed3660046146aa565b611018565b6106056106003660046144ac565b6113ee565b60405161036a9190614751565b61033e611462565b610494610628366004614637565b6001805460ff9092161b9081161490565b61033e6106473660046147d6565b61152e565b600154610360565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6103b1610689366004614424565b611588565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b61033e6106c336600461480a565b6115b2565b61033e611707565b6103606106de3660046148c1565b61171b565b6103866106f1366004614424565b611765565b6000546103b1906201000090046001600160a01b031681565b6103b1611770565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614a61565b611789565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614b6e565b611aa2565b61036060a05481565b6107c66107c1366004614c1e565b611c07565b60405161036a9190614cc8565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614d11565b611cb6565b609c54610360565b61033e610823366004614dff565b611d1c565b61033e610836366004614fb0565b611d2f565b6108aa610849366004614637565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144ac565b611fef565b61033e6108ff366004614424565b612065565b6109336109123660046144ac565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a919061508e565b6001546002906004908116036109715760405162461bcd60e51b81526004016109689061509c565b60405180910390fd5b60005b82811015610a48576000848483818110610990576109906150d3565b90506020020160208101906109a591906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614719565b6002811115610a0157610a01614719565b90525080519091506000610a14826121c1565b90506000610a2a826001600160c01b031661222c565b9050610a378585836122f8565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a716150d3565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b666123e5565b6001600160a01b0316600090815260c860205260409020805460ff19166001179055565b60013360009081526099602052604090206001015460ff166002811115610bb357610bb3614719565b14610be85760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c2990849061512f565b60405180910390a250565b610c3c6123e5565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb89190615142565b6001600160a01b0316336001600160a01b031614610ce85760405162461bcd60e51b81526004016109689061515f565b610cf181612444565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6591906151a9565b610d815760405162461bcd60e51b8152600401610968906151cb565b60015481811614610dfa5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c29565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e6e57610e6e6150d3565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610eca6123e5565b6001600160a01b0316600090815260c860205260409020805460ff19169055565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610f53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190615142565b610f7f6123e5565b610cf181612549565b610f906123e5565b610cf1816125b2565b6040805180820190915260008082526020820152610ebc6110137f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de684604051602001610ff89291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061261b565b612669565b6001546002906004908116036110405760405162461bcd60e51b81526004016109689061509c565b600061108884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90508483146110c25760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b838110156113e55760008585838181106110e1576110e16150d3565b919091013560f81c91503690506000898985818110611102576111026150d3565b90506020028101906111149190615213565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f341092290602401602060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a4919061525c565b63ffffffff1681146111e35760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b8281101561138a576000848483818110611203576112036150d3565b905060200201602081019061121891906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561126357611263614719565b600281111561127457611274614719565b90525080519091506000611287826121c1565b905060016001600160c01b03821660ff8b161c8116146112d45760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161131f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b5061137d83838f8f8d908e6001611336919061528f565b92611343939291906152a2565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122f892505050565b50909250506001016111e7565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a2505050508060010190506110c5565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561144857611448614719565b600281111561145957611459614719565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d391906151a9565b6114ef5760405162461bcd60e51b8152600401610968906151cb565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6115366123e5565b609654829060ff908116908216106115795760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115838383612789565b505050565b609c818154811061159857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146115f95760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116669187908790819084018382808284376000920191909152505060965460ff1691506126f89050565b90506000611673836121c1565b905060018085015460ff16600281111561168f5761168f614719565b1480156116a457506001600160c01b03821615155b80156116c257506116c26001600160c01b0383811690831681161490565b156113e5576113e58787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b61170f6123e5565b6117196000612bbe565b565b600061175b7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a8787878787604051602001610ff8969594939291906152cc565b9695505050505050565b6000610ebc826121c1565b60006117846064546001600160a01b031690565b905090565b60018054600091908116036117b05760405162461bcd60e51b81526004016109689061509c565b33600090815260c8602052604090205460ff166118015760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118395760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118453388612c10565b90506118a533828888808060200260200160405190810160405280939291908181526020016000905b8282101561189a5761188b60408302860136819003810190615353565b8152602001906001019061186e565b505050505087612d45565b60006118ec33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b90506000609760008e8e6000818110611907576119076150d3565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b909104909416928101929092528451805192945091611972576119726150d3565b602002602001015163ffffffff161115611a9357611a178d8d600081811061199c5761199c6150d3565b9050013560f81c60f81b60f81c83604001516000815181106119c0576119c06150d3565b60200260200101513385602001516000815181106119e0576119e06150d3565b60200260200101518c8c60008181106119fb576119fb6150d3565b905060400201803603810190611a119190615353565b866132e5565b611a9388886000818110611a2d57611a2d6150d3565b9050604002016020016020810190611a4591906144ac565b8e8e600090600192611a59939291906152a2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b50505050505050505050505050565b6001805460009190811603611ac95760405162461bcd60e51b81526004016109689061509c565b33600090815260c8602052604090205460ff16611b1a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b263385612c10565b90506000611b6f33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611bb757611bb76150d3565b602002602001015163ffffffff161115611bfc5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c2457611c246144c9565b604051908082528060200260200182016040528015611c4d578160200160208202803683370190505b50905060005b8351811015611cae57611c7f85858381518110611c7257611c726150d3565b60200260200101516134b4565b828281518110611c9157611c916150d3565b63ffffffff90921660209283029190910190910152600101611c53565b509392505050565b60018054600290811603611cdc5760405162461bcd60e51b81526004016109689061509c565b6115833384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b611d246123e5565b61158383838361356d565b600054610100900460ff1615808015611d4f5750600054600160ff909116105b80611d695750303b158015611d69575060005460ff166001145b611dcc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611def576000805461ff0019166101001790555b82518451148015611e01575081518351145b611e325760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e3b89612bbe565b611e45868661374f565b611e4e88612549565b611e57876125b2565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166001600160a01b03199283161790925585548085018755850180547f0000000000000000000000000000000000000000000000000000000000000000841690831617905585549384019095559190920180547f000000000000000000000000000000000000000000000000000000000000000090921691909316179091555b8451811015611f9e57611f96858281518110611f5557611f556150d3565b6020026020010151858381518110611f6f57611f6f6150d3565b6020026020010151858481518110611f8957611f896150d3565b602002602001015161356d565b600101611f37565b508015611bfc576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b611ff76123e5565b6001600160a01b03811661205c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610cf181612bbe565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dc9190615142565b6001600160a01b0316336001600160a01b03161461210c5760405162461bcd60e51b81526004016109689061515f565b60015419811960015419161461218a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c29565b6000818152609860205260408120548082036121e05750600092915050565b60008381526098602052604090206121f960018361536f565b81548110612209576122096150d3565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061223a8461383f565b61ffff166001600160401b03811115612255576122556144c9565b6040519080825280601f01601f19166020018201604052801561227f576020820181803683370190505b5090506000805b825182108015612297575061010081105b156122ee576001811b9350858416156122de578060f81b8383815181106122c0576122c06150d3565b60200101906001600160f81b031916908160001a9053508160010191505b6122e781615382565b9050612286565b5090949350505050565b60018260200151600281111561231057612310614719565b1461231a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366acfefe9061236f9088908690889060040161539b565b6020604051808303816000875af115801561238e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b291906153cb565b90506001600160c01b038116156123de576123de856123d9836001600160c01b031661222c565b612836565b5050505050565b336123ee611770565b6001600160a01b0316146117195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166124d25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ebc61262861386a565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806126996000805160206158738339815191528661540a565b90505b6126a581613991565b909350915060008051602061587383398151915282830983036126de576040805180820190915290815260208101919091529392505050565b60008051602061587383398151915260018208905061269c565b60008061270484613a13565b9050808360ff166001901b116127825760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff16600281111561286a5761286a614719565b1461289f5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b6096546000906128b390859060ff166126f8565b905060006128c0836121c1565b90506001600160c01b0382166129015760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129186001600160c01b0383811690831681161490565b61294d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129668482613b9b565b6001600160c01b038116612a355760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401600060405180830381600087803b1580156129e657600080fd5b505af11580156129fa573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe590612a83908a908a9060040161541e565b600060405180830381600087803b158015612a9d57600080fd5b505af1158015612ab1573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612b039087908a90600401615442565b600060405180830381600087803b158015612b1d57600080fd5b505af1158015612b31573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612b839087908a90600401615442565b600060405180830381600087803b158015612b9d57600080fd5b505af1158015612bb1573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906313542a4e90602401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f919061545b565b90506000819003610ebc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf79ce588484612ce487610f99565b6040518463ffffffff1660e01b8152600401612d0293929190615474565b6020604051808303816000875af1158015612d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612782919061545b565b6020808201516000908152609a909152604090205460ff1615612d935760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612dcf5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e1a918891889188919061171b565b8351613d5c565b612e4560405180606001604052806060815260200160608152602001606081525090565b6000612e8d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90506000612e9a886121c1565b90506001600160c01b038216612edb5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f1d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612f55919061528f565b10612f8a5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612f948982613b9b565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051612fc4919061512f565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff166002811115612ffe57612ffe614719565b14613117576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff19169083600281111561305957613059614719565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150639926ee7d906130ae908d9089906004016154e4565b600060405180830381600087803b1580156130c857600080fd5b505af11580156130dc573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb2795290613167908d908c908c90600401615558565b600060405180830381600087803b15801561318157600080fd5b505af1158015613195573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250632550477791506131eb908d908d908d908d9060040161557d565b6000604051808303816000875af115801561320a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613232919081019061560c565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d9061328f908c908c908c90600401615673565b6000604051808303816000875af11580156132ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132d6919081019061568d565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361333e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff161461337d5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa1580156133ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134129190615721565b905061341e8185613f16565b6001600160601b0316866001600160601b0316116134645760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b61346e8885613f3a565b6001600160601b0316816001600160601b031610611bfc5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561353c5760016134d9828461536f565b6134e3919061536f565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613516576135166150d3565b60009182526020909120015463ffffffff1611613534575050610ebc565b6001016134c5565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135ac5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b6135b781600161573e565b6096805460ff191660ff92909216919091179055806135d68186612789565b60405160016296b58960e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ff694a779061362990849088908890600401615757565b600060405180830381600087803b15801561364357600080fd5b505af1158015613657573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b1580156136bf57600080fd5b505af11580156136d3573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561373b57600080fd5b505af1158015611bfc573d6000803e3d6000fd5b6000546201000090046001600160a01b031615801561377657506001600160a01b03821615155b6137f85760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261383b82612444565b5050565b6000805b8215610ebc5761385460018461536f565b9092169180613862816157d7565b915050613843565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156138c357507f000000000000000000000000000000000000000000000000000000000000000046145b156138ed57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615873833981519152600360008051602061587383398151915286600080516020615873833981519152888909090890506000613a07827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615873833981519152613f54565b91959194509092505050565b600061010082511115613a9c5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613aad57506000919050565b60008083600081518110613ac357613ac36150d3565b0160200151600160f89190911c81901b92505b8451811015613b9257848181518110613af157613af16150d3565b0160200151600160f89190911c1b9150828211613b865760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613ad6565b50909392505050565b60008281526098602052604081205490819003613c43576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613c5c60018461536f565b81548110613c6c57613c6c6150d3565b6000918252602090912001805490915063ffffffff438116911603613cae5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613e7657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613d9c9086908690600401615442565b602060405180830381865afa158015613db9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ddd91906157f8565b6001600160e01b031916146115835760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613e8a8383613ffd565b6001600160a01b0316146115835760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f309061ffff1685615822565b6127829190615844565b604081015160009061271090613f309061ffff1685615822565b600080613f5f614363565b613f67614381565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fa457fe5b5082613ff25760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061400c8585614019565b91509150611cae81614087565b600080825160410361404f5760208301516040840151606085015160001a6140438782858561423d565b94509450505050614080565b8251604003614078576020830151604084015161406d86838361432a565b935093505050614080565b506000905060025b9250929050565b600081600481111561409b5761409b614719565b036140a35750565b60018160048111156140b7576140b7614719565b036141045760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561411857614118614719565b036141655760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b600381600481111561417957614179614719565b036141d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b60048160048111156141e5576141e5614719565b03610cf15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142745750600090506003614321565b8460ff16601b1415801561428c57508460ff16601c14155b1561429d5750600090506004614321565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156142f1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661431a57600060019250925050614321565b9150600090505b94509492505050565b6000806001600160ff1b0383168161434760ff86901c601b61528f565b90506143558782888561423d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f8401126143b157600080fd5b5081356001600160401b038111156143c857600080fd5b6020830191508360208260051b850101111561408057600080fd5b600080602083850312156143f657600080fd5b82356001600160401b0381111561440c57600080fd5b6144188582860161439f565b90969095509350505050565b60006020828403121561443657600080fd5b5035919050565b63ffffffff81168114610cf157600080fd5b60008060006060848603121561446457600080fd5b8335925060208401356144768161443d565b929592945050506040919091013590565b6001600160a01b0381168114610cf157600080fd5b80356144a781614487565b919050565b6000602082840312156144be57600080fd5b813561278281614487565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614501576145016144c9565b60405290565b604080519081016001600160401b0381118282101715614501576145016144c9565b604051601f8201601f191681016001600160401b0381118282101715614551576145516144c9565b604052919050565b6000806001600160401b03841115614573576145736144c9565b50601f8301601f191660200161458881614529565b91505082815283838301111561459d57600080fd5b828260208301376000602084830101529392505050565b6000602082840312156145c657600080fd5b81356001600160401b038111156145dc57600080fd5b8201601f810184136145ed57600080fd5b6145fc84823560208401614559565b949350505050565b6000806040838503121561461757600080fd5b50508035926020909101359150565b803560ff811681146144a757600080fd5b60006020828403121561464957600080fd5b61278282614626565b815181526020808301519082015260408101610ebc565b60008083601f84011261467b57600080fd5b5081356001600160401b0381111561469257600080fd5b60208301915083602082850101111561408057600080fd5b600080600080604085870312156146c057600080fd5b84356001600160401b038111156146d657600080fd5b6146e28782880161439f565b90955093505060208501356001600160401b0381111561470157600080fd5b61470d87828801614669565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061474d57634e487b7160e01b600052602160045260246000fd5b9052565b81518152602080830151604083019161476c9084018261472f565b5092915050565b803561ffff811681146144a757600080fd5b60006060828403121561479757600080fd5b61479f6144df565b905081356147ac8161443d565b81526147ba60208301614773565b60208201526147cb60408301614773565b604082015292915050565b600080608083850312156147e957600080fd5b6147f283614626565b91506148018460208501614785565b90509250929050565b60008060006040848603121561481f57600080fd5b833561482a81614487565b925060208401356001600160401b0381111561484557600080fd5b61485186828701614669565b9497909650939450505050565b60006001600160401b03821115614877576148776144c9565b5060051b60200190565b60006040828403121561489357600080fd5b61489b614507565b90506148a682614626565b815260208201356148b681614487565b602082015292915050565b600080600080600060a086880312156148d957600080fd5b85356148e481614487565b94506020860135935060408601356001600160401b0381111561490657600080fd5b8601601f8101881361491757600080fd5b803561492a6149258261485e565b614529565b8082825260208201915060208360061b85010192508a83111561494c57600080fd5b6020840193505b82841015614978576149658b85614881565b8252602082019150604084019350614953565b979a9699509697606081013597506080013595945050505050565b600061010082840312156149a657600080fd5b50919050565b60008083601f8401126149be57600080fd5b5081356001600160401b038111156149d557600080fd5b6020830191508360208260061b850101111561408057600080fd5b600060608284031215614a0257600080fd5b614a0a6144df565b905081356001600160401b03811115614a2257600080fd5b8201601f81018413614a3357600080fd5b614a4284823560208401614559565b8252506020828101359082015260409182013591810191909152919050565b60008060008060008060008060006101a08a8c031215614a8057600080fd5b89356001600160401b03811115614a9657600080fd5b614aa28c828d01614669565b909a5098505060208a01356001600160401b03811115614ac157600080fd5b614acd8c828d01614669565b9098509650614ae190508b60408c01614993565b94506101408a01356001600160401b03811115614afd57600080fd5b614b098c828d016149ac565b9095509350506101608a01356001600160401b03811115614b2957600080fd5b614b358c828d016149f0565b9250506101808a01356001600160401b03811115614b5257600080fd5b614b5e8c828d016149f0565b9150509295985092959850929598565b6000806000806000806101608789031215614b8857600080fd5b86356001600160401b03811115614b9e57600080fd5b614baa89828a01614669565b90975095505060208701356001600160401b03811115614bc957600080fd5b614bd589828a01614669565b9095509350614be990508860408901614993565b91506101408701356001600160401b03811115614c0557600080fd5b614c1189828a016149f0565b9150509295509295509295565b60008060408385031215614c3157600080fd5b8235614c3c8161443d565b915060208301356001600160401b03811115614c5757600080fd5b8301601f81018513614c6857600080fd5b8035614c766149258261485e565b8082825260208201915060208360051b850101925087831115614c9857600080fd5b6020840193505b82841015614cba578335825260209384019390910190614c9f565b809450505050509250929050565b602080825282518282018190526000918401906040840190835b81811015614d0657835163ffffffff16835260209384019390920191600101614ce2565b509095945050505050565b60008060208385031215614d2457600080fd5b82356001600160401b03811115614d3a57600080fd5b61441885828601614669565b6001600160601b0381168114610cf157600080fd5b600082601f830112614d6c57600080fd5b8135614d7a6149258261485e565b8082825260208201915060208360061b860101925085831115614d9c57600080fd5b602085015b83811015614df55760408188031215614db957600080fd5b614dc1614507565b8135614dcc81614487565b81526020820135614ddc81614d46565b6020828101919091529084529290920191604001614da1565b5095945050505050565b600080600060a08486031215614e1457600080fd5b614e1e8585614785565b92506060840135614e2e81614d46565b915060808401356001600160401b03811115614e4957600080fd5b614e5586828701614d5b565b9150509250925092565b600082601f830112614e7057600080fd5b8135614e7e6149258261485e565b80828252602082019150602060608402860101925085831115614ea057600080fd5b602085015b83811015614df557614eb78782614785565b8352602090920191606001614ea5565b600082601f830112614ed857600080fd5b8135614ee66149258261485e565b8082825260208201915060208360051b860101925085831115614f0857600080fd5b602085015b83811015614df5578035614f2081614d46565b835260209283019201614f0d565b600082601f830112614f3f57600080fd5b8135614f4d6149258261485e565b8082825260208201915060208360051b860101925085831115614f6f57600080fd5b602085015b83811015614df55780356001600160401b03811115614f9257600080fd5b614fa1886020838a0101614d5b565b84525060209283019201614f74565b600080600080600080600080610100898b031215614fcd57600080fd5b614fd68961449c565b9750614fe460208a0161449c565b9650614ff260408a0161449c565b955061500060608a0161449c565b94506080890135935060a08901356001600160401b0381111561502257600080fd5b61502e8b828c01614e5f565b93505060c08901356001600160401b0381111561504a57600080fd5b6150568b828c01614ec7565b92505060e08901356001600160401b0381111561507257600080fd5b61507e8b828c01614f2e565b9150509295985092959890939650565b60208101610ebc828461472f565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b8181101561510f576020818501810151868301820152016150f3565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061278260208301846150e9565b60006020828403121561515457600080fd5b815161278281614487565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156151bb57600080fd5b8151801515811461278257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261522a57600080fd5b8301803591506001600160401b0382111561524457600080fd5b6020019150600581901b360382131561408057600080fd5b60006020828403121561526e57600080fd5b81516127828161443d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ebc57610ebc615279565b600080858511156152b257600080fd5b838611156152bf57600080fd5b5050820193919092039150565b600060c0820188835260018060a01b038816602084015286604084015260c0606084015280865180835260e08501915060208801925060005b8181101561533b578351805160ff1684526020908101516001600160a01b03168185015290930192604090920191600101615305565b50506080840195909552505060a00152949350505050565b60006040828403121561536557600080fd5b6127828383614881565b81810381811115610ebc57610ebc615279565b60006001820161539457615394615279565b5060010190565b60018060a01b03841681528260208201526060604082015260006153c260608301846150e9565b95945050505050565b6000602082840312156153dd57600080fd5b81516001600160c01b038116811461278257600080fd5b634e487b7160e01b600052601260045260246000fd5b600082615419576154196153f4565b500690565b6001600160a01b03831681526040602082018190526000906145fc908301846150e9565b8281526040602082015260006145fc60408301846150e9565b60006020828403121561546d57600080fd5b5051919050565b6001600160a01b0384168152610160810161549c602083018580358252602090810135910152565b6154b6606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e0840137825161012083015260208301516101408301526145fc565b60018060a01b038316815260406020820152600082516060604084015261550e60a08401826150e9565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906153c2908301848661552f565b60018060a01b038516815283602082015260606040820152600061175b60608301848661552f565b600082601f8301126155b657600080fd5b81516155c46149258261485e565b8082825260208201915060208360051b8601019250858311156155e657600080fd5b602085015b83811015614df55780516155fe81614d46565b8352602092830192016155eb565b6000806040838503121561561f57600080fd5b82516001600160401b0381111561563557600080fd5b615641858286016155a5565b92505060208301516001600160401b0381111561565d57600080fd5b615669858286016155a5565b9150509250929050565b8381526040602082015260006153c260408301848661552f565b60006020828403121561569f57600080fd5b81516001600160401b038111156156b557600080fd5b8201601f810184136156c657600080fd5b80516156d46149258261485e565b8082825260208201915060208360051b8501019250868311156156f657600080fd5b6020840193505b8284101561175b5783516157108161443d565b8252602093840193909101906156fd565b60006020828403121561573357600080fd5b815161278281614d46565b60ff8181168382160190811115610ebc57610ebc615279565b60006060820160ff861683526001600160601b03851660208401526060604084015280845180835260808501915060208601925060005b818110156157ca57835180516001600160a01b031684526020908101516001600160601b0316818501529093019260409092019160010161578e565b5090979650505050505050565b600061ffff821661ffff81036157ef576157ef615279565b60010192915050565b60006020828403121561580a57600080fd5b81516001600160e01b03198116811461278257600080fd5b6001600160601b03818116838216029081169081811461476c5761476c615279565b60006001600160601b0383168061585d5761585d6153f4565b806001600160601b038416049150509291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a2646970667358221220b92168cdd7913389b4693f8d47acf022803b83aaede28b5d32f3a5d020a92d8264736f6c634300081b00330000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e800000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36","output":"0x608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e6103393660046143e3565b610940565b005b61036061034e366004614424565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461444f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144ac565b610b5e565b61033e6103ea3660046145b4565b610b8a565b61033e6103fd366004614424565b610c34565b61033e6104103660046144ac565b610c41565b6103606104233660046144ac565b609f6020526000908152604090205481565b6103606104433660046144ac565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614424565b610cf4565b61049461047f366004614424565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614604565b610e31565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614637565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144ac565b610ec2565b6103b1610541366004614424565b610eeb565b61033e6105543660046144ac565b610f77565b61033e6105673660046144ac565b610f88565b6103b17f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e881565b6104946105a13660046144ac565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144ac565b610f99565b60405161036a9190614652565b61033e6105ed3660046146aa565b611018565b6106056106003660046144ac565b6113ee565b60405161036a9190614751565b61033e611462565b610494610628366004614637565b6001805460ff9092161b9081161490565b61033e6106473660046147d6565b61152e565b600154610360565b6103b17f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b6103b1610689366004614424565b611588565b6103b17f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b61033e6106c336600461480a565b6115b2565b61033e611707565b6103606106de3660046148c1565b61171b565b6103866106f1366004614424565b611765565b6000546103b1906201000090046001600160a01b031681565b6103b1611770565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614a61565b611789565b6103b17f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614b6e565b611aa2565b61036060a05481565b6107c66107c1366004614c1e565b611c07565b60405161036a9190614cc8565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614d11565b611cb6565b609c54610360565b61033e610823366004614dff565b611d1c565b61033e610836366004614fb0565b611d2f565b6108aa610849366004614637565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144ac565b611fef565b61033e6108ff366004614424565b612065565b6109336109123660046144ac565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a919061508e565b6001546002906004908116036109715760405162461bcd60e51b81526004016109689061509c565b60405180910390fd5b60005b82811015610a48576000848483818110610990576109906150d3565b90506020020160208101906109a591906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614719565b6002811115610a0157610a01614719565b90525080519091506000610a14826121c1565b90506000610a2a826001600160c01b031661222c565b9050610a378585836122f8565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a716150d3565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b666123e5565b6001600160a01b0316600090815260c860205260409020805460ff19166001179055565b60013360009081526099602052604090206001015460ff166002811115610bb357610bb3614719565b14610be85760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c2990849061512f565b60405180910390a250565b610c3c6123e5565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb89190615142565b6001600160a01b0316336001600160a01b031614610ce85760405162461bcd60e51b81526004016109689061515f565b610cf181612444565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6591906151a9565b610d815760405162461bcd60e51b8152600401610968906151cb565b60015481811614610dfa5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c29565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e6e57610e6e6150d3565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610eca6123e5565b6001600160a01b0316600090815260c860205260409020805460ff19169055565b6040516308f6629d60e31b8152600481018290526000907f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b0316906347b314e890602401602060405180830381865afa158015610f53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190615142565b610f7f6123e5565b610cf181612549565b610f906123e5565b610cf1816125b2565b6040805180820190915260008082526020820152610ebc6110137f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de684604051602001610ff89291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061261b565b612669565b6001546002906004908116036110405760405162461bcd60e51b81526004016109689061509c565b600061108884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90508483146110c25760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b838110156113e55760008585838181106110e1576110e16150d3565b919091013560f81c91503690506000898985818110611102576111026150d3565b90506020028101906111149190615213565b6040516379a0849160e11b815260ff8616600482015291935091507f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b03169063f341092290602401602060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a4919061525c565b63ffffffff1681146111e35760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b8281101561138a576000848483818110611203576112036150d3565b905060200201602081019061121891906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561126357611263614719565b600281111561127457611274614719565b90525080519091506000611287826121c1565b905060016001600160c01b03821660ff8b161c8116146112d45760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161131f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b5061137d83838f8f8d908e6001611336919061528f565b92611343939291906152a2565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122f892505050565b50909250506001016111e7565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a2505050508060010190506110c5565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561144857611448614719565b600281111561145957611459614719565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d391906151a9565b6114ef5760405162461bcd60e51b8152600401610968906151cb565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6115366123e5565b609654829060ff908116908216106115795760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115838383612789565b505050565b609c818154811061159857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146115f95760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116669187908790819084018382808284376000920191909152505060965460ff1691506126f89050565b90506000611673836121c1565b905060018085015460ff16600281111561168f5761168f614719565b1480156116a457506001600160c01b03821615155b80156116c257506116c26001600160c01b0383811690831681161490565b156113e5576113e58787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b61170f6123e5565b6117196000612bbe565b565b600061175b7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a8787878787604051602001610ff8969594939291906152cc565b9695505050505050565b6000610ebc826121c1565b60006117846064546001600160a01b031690565b905090565b60018054600091908116036117b05760405162461bcd60e51b81526004016109689061509c565b33600090815260c8602052604090205460ff166118015760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118395760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118453388612c10565b90506118a533828888808060200260200160405190810160405280939291908181526020016000905b8282101561189a5761188b60408302860136819003810190615353565b8152602001906001019061186e565b505050505087612d45565b60006118ec33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b90506000609760008e8e6000818110611907576119076150d3565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b909104909416928101929092528451805192945091611972576119726150d3565b602002602001015163ffffffff161115611a9357611a178d8d600081811061199c5761199c6150d3565b9050013560f81c60f81b60f81c83604001516000815181106119c0576119c06150d3565b60200260200101513385602001516000815181106119e0576119e06150d3565b60200260200101518c8c60008181106119fb576119fb6150d3565b905060400201803603810190611a119190615353565b866132e5565b611a9388886000818110611a2d57611a2d6150d3565b9050604002016020016020810190611a4591906144ac565b8e8e600090600192611a59939291906152a2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b50505050505050505050505050565b6001805460009190811603611ac95760405162461bcd60e51b81526004016109689061509c565b33600090815260c8602052604090205460ff16611b1a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b263385612c10565b90506000611b6f33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611bb757611bb76150d3565b602002602001015163ffffffff161115611bfc5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c2457611c246144c9565b604051908082528060200260200182016040528015611c4d578160200160208202803683370190505b50905060005b8351811015611cae57611c7f85858381518110611c7257611c726150d3565b60200260200101516134b4565b828281518110611c9157611c916150d3565b63ffffffff90921660209283029190910190910152600101611c53565b509392505050565b60018054600290811603611cdc5760405162461bcd60e51b81526004016109689061509c565b6115833384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b611d246123e5565b61158383838361356d565b600054610100900460ff1615808015611d4f5750600054600160ff909116105b80611d695750303b158015611d69575060005460ff166001145b611dcc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611def576000805461ff0019166101001790555b82518451148015611e01575081518351145b611e325760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e3b89612bbe565b611e45868661374f565b611e4e88612549565b611e57876125b2565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881166001600160a01b03199283161790925585548085018755850180547f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e841690831617905585549384019095559190920180547f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3690921691909316179091555b8451811015611f9e57611f96858281518110611f5557611f556150d3565b6020026020010151858381518110611f6f57611f6f6150d3565b6020026020010151858481518110611f8957611f896150d3565b602002602001015161356d565b600101611f37565b508015611bfc576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b611ff76123e5565b6001600160a01b03811661205c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610cf181612bbe565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dc9190615142565b6001600160a01b0316336001600160a01b03161461210c5760405162461bcd60e51b81526004016109689061515f565b60015419811960015419161461218a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c29565b6000818152609860205260408120548082036121e05750600092915050565b60008381526098602052604090206121f960018361536f565b81548110612209576122096150d3565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061223a8461383f565b61ffff166001600160401b03811115612255576122556144c9565b6040519080825280601f01601f19166020018201604052801561227f576020820181803683370190505b5090506000805b825182108015612297575061010081105b156122ee576001811b9350858416156122de578060f81b8383815181106122c0576122c06150d3565b60200101906001600160f81b031916908160001a9053508160010191505b6122e781615382565b9050612286565b5090949350505050565b60018260200151600281111561231057612310614719565b1461231a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816906366acfefe9061236f9088908690889060040161539b565b6020604051808303816000875af115801561238e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b291906153cb565b90506001600160c01b038116156123de576123de856123d9836001600160c01b031661222c565b612836565b5050505050565b336123ee611770565b6001600160a01b0316146117195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166124d25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ebc61262861386a565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806126996000805160206158738339815191528661540a565b90505b6126a581613991565b909350915060008051602061587383398151915282830983036126de576040805180820190915290815260208101919091529392505050565b60008051602061587383398151915260018208905061269c565b60008061270484613a13565b9050808360ff166001901b116127825760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff16600281111561286a5761286a614719565b1461289f5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b6096546000906128b390859060ff166126f8565b905060006128c0836121c1565b90506001600160c01b0382166129015760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129186001600160c01b0383811690831681161490565b61294d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129668482613b9b565b6001600160c01b038116612a355760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169063a364f4da90602401600060405180830381600087803b1580156129e657600080fd5b505af11580156129fa573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e169063f4e24fe590612a83908a908a9060040161541e565b600060405180830381600087803b158015612a9d57600080fd5b505af1158015612ab1573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816925063bd29b8cd9150612b039087908a90600401615442565b600060405180830381600087803b158015612b1d57600080fd5b505af1158015612b31573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616925063bd29b8cd9150612b839087908a90600401615442565b600060405180830381600087803b158015612b9d57600080fd5b505af1158015612bb1573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e909116906313542a4e90602401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f919061545b565b90506000819003610ebc577f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031663bf79ce588484612ce487610f99565b6040518463ffffffff1660e01b8152600401612d0293929190615474565b6020604051808303816000875af1158015612d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612782919061545b565b6020808201516000908152609a909152604090205460ff1615612d935760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612dcf5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e1a918891889188919061171b565b8351613d5c565b612e4560405180606001604052806060815260200160608152602001606081525090565b6000612e8d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90506000612e9a886121c1565b90506001600160c01b038216612edb5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f1d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612f55919061528f565b10612f8a5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612f948982613b9b565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051612fc4919061512f565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff166002811115612ffe57612ffe614719565b14613117576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff19169083600281111561305957613059614719565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169150639926ee7d906130ae908d9089906004016154e4565b600060405180830381600087803b1580156130c857600080fd5b505af11580156130dc573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e1690633fb2795290613167908d908c908c90600401615558565b600060405180830381600087803b15801561318157600080fd5b505af1158015613195573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169250632550477791506131eb908d908d908d908d9060040161557d565b6000604051808303816000875af115801561320a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613232919081019061560c565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36169062bff04d9061328f908c908c908c90600401615673565b6000604051808303816000875af11580156132ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132d6919081019061568d565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361333e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff161461337d5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690635401ed2790604401602060405180830381865afa1580156133ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134129190615721565b905061341e8185613f16565b6001600160601b0316866001600160601b0316116134645760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b61346e8885613f3a565b6001600160601b0316816001600160601b031610611bfc5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561353c5760016134d9828461536f565b6134e3919061536f565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613516576135166150d3565b60009182526020909120015463ffffffff1611613534575050610ebc565b6001016134c5565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135ac5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b6135b781600161573e565b6096805460ff191660ff92909216919091179055806135d68186612789565b60405160016296b58960e01b031981526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169063ff694a779061362990849088908890600401615757565b600060405180830381600087803b15801561364357600080fd5b505af1158015613657573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b031692506326d941f29150602401600060405180830381600087803b1580156136bf57600080fd5b505af11580156136d3573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561373b57600080fd5b505af1158015611bfc573d6000803e3d6000fd5b6000546201000090046001600160a01b031615801561377657506001600160a01b03821615155b6137f85760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261383b82612444565b5050565b6000805b8215610ebc5761385460018461536f565b9092169180613862816157d7565b915050613843565b6000306001600160a01b037f0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd00161480156138c357507f0000000000000000000000000000000000000000000000000000000000007a6946145b156138ed57507fc6374306ca0c3d05fd3f0cebbec8fc4308f71679c06b0e30a95d8c9709d43dae90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f6ec8a99f0e7f9ebde7354a446dcb9423f3af9c58f386a53c59c5b384f9e82d11828401527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a9960608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615873833981519152600360008051602061587383398151915286600080516020615873833981519152888909090890506000613a07827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615873833981519152613f54565b91959194509092505050565b600061010082511115613a9c5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613aad57506000919050565b60008083600081518110613ac357613ac36150d3565b0160200151600160f89190911c81901b92505b8451811015613b9257848181518110613af157613af16150d3565b0160200151600160f89190911c1b9150828211613b865760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613ad6565b50909392505050565b60008281526098602052604081205490819003613c43576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613c5c60018461536f565b81548110613c6c57613c6c6150d3565b6000918252602090912001805490915063ffffffff438116911603613cae5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613e7657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613d9c9086908690600401615442565b602060405180830381865afa158015613db9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ddd91906157f8565b6001600160e01b031916146115835760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613e8a8383613ffd565b6001600160a01b0316146115835760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f309061ffff1685615822565b6127829190615844565b604081015160009061271090613f309061ffff1685615822565b600080613f5f614363565b613f67614381565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fa457fe5b5082613ff25760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061400c8585614019565b91509150611cae81614087565b600080825160410361404f5760208301516040840151606085015160001a6140438782858561423d565b94509450505050614080565b8251604003614078576020830151604084015161406d86838361432a565b935093505050614080565b506000905060025b9250929050565b600081600481111561409b5761409b614719565b036140a35750565b60018160048111156140b7576140b7614719565b036141045760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561411857614118614719565b036141655760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b600381600481111561417957614179614719565b036141d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b60048160048111156141e5576141e5614719565b03610cf15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142745750600090506003614321565b8460ff16601b1415801561428c57508460ff16601c14155b1561429d5750600090506004614321565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156142f1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661431a57600060019250925050614321565b9150600090505b94509492505050565b6000806001600160ff1b0383168161434760ff86901c601b61528f565b90506143558782888561423d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f8401126143b157600080fd5b5081356001600160401b038111156143c857600080fd5b6020830191508360208260051b850101111561408057600080fd5b600080602083850312156143f657600080fd5b82356001600160401b0381111561440c57600080fd5b6144188582860161439f565b90969095509350505050565b60006020828403121561443657600080fd5b5035919050565b63ffffffff81168114610cf157600080fd5b60008060006060848603121561446457600080fd5b8335925060208401356144768161443d565b929592945050506040919091013590565b6001600160a01b0381168114610cf157600080fd5b80356144a781614487565b919050565b6000602082840312156144be57600080fd5b813561278281614487565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614501576145016144c9565b60405290565b604080519081016001600160401b0381118282101715614501576145016144c9565b604051601f8201601f191681016001600160401b0381118282101715614551576145516144c9565b604052919050565b6000806001600160401b03841115614573576145736144c9565b50601f8301601f191660200161458881614529565b91505082815283838301111561459d57600080fd5b828260208301376000602084830101529392505050565b6000602082840312156145c657600080fd5b81356001600160401b038111156145dc57600080fd5b8201601f810184136145ed57600080fd5b6145fc84823560208401614559565b949350505050565b6000806040838503121561461757600080fd5b50508035926020909101359150565b803560ff811681146144a757600080fd5b60006020828403121561464957600080fd5b61278282614626565b815181526020808301519082015260408101610ebc565b60008083601f84011261467b57600080fd5b5081356001600160401b0381111561469257600080fd5b60208301915083602082850101111561408057600080fd5b600080600080604085870312156146c057600080fd5b84356001600160401b038111156146d657600080fd5b6146e28782880161439f565b90955093505060208501356001600160401b0381111561470157600080fd5b61470d87828801614669565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061474d57634e487b7160e01b600052602160045260246000fd5b9052565b81518152602080830151604083019161476c9084018261472f565b5092915050565b803561ffff811681146144a757600080fd5b60006060828403121561479757600080fd5b61479f6144df565b905081356147ac8161443d565b81526147ba60208301614773565b60208201526147cb60408301614773565b604082015292915050565b600080608083850312156147e957600080fd5b6147f283614626565b91506148018460208501614785565b90509250929050565b60008060006040848603121561481f57600080fd5b833561482a81614487565b925060208401356001600160401b0381111561484557600080fd5b61485186828701614669565b9497909650939450505050565b60006001600160401b03821115614877576148776144c9565b5060051b60200190565b60006040828403121561489357600080fd5b61489b614507565b90506148a682614626565b815260208201356148b681614487565b602082015292915050565b600080600080600060a086880312156148d957600080fd5b85356148e481614487565b94506020860135935060408601356001600160401b0381111561490657600080fd5b8601601f8101881361491757600080fd5b803561492a6149258261485e565b614529565b8082825260208201915060208360061b85010192508a83111561494c57600080fd5b6020840193505b82841015614978576149658b85614881565b8252602082019150604084019350614953565b979a9699509697606081013597506080013595945050505050565b600061010082840312156149a657600080fd5b50919050565b60008083601f8401126149be57600080fd5b5081356001600160401b038111156149d557600080fd5b6020830191508360208260061b850101111561408057600080fd5b600060608284031215614a0257600080fd5b614a0a6144df565b905081356001600160401b03811115614a2257600080fd5b8201601f81018413614a3357600080fd5b614a4284823560208401614559565b8252506020828101359082015260409182013591810191909152919050565b60008060008060008060008060006101a08a8c031215614a8057600080fd5b89356001600160401b03811115614a9657600080fd5b614aa28c828d01614669565b909a5098505060208a01356001600160401b03811115614ac157600080fd5b614acd8c828d01614669565b9098509650614ae190508b60408c01614993565b94506101408a01356001600160401b03811115614afd57600080fd5b614b098c828d016149ac565b9095509350506101608a01356001600160401b03811115614b2957600080fd5b614b358c828d016149f0565b9250506101808a01356001600160401b03811115614b5257600080fd5b614b5e8c828d016149f0565b9150509295985092959850929598565b6000806000806000806101608789031215614b8857600080fd5b86356001600160401b03811115614b9e57600080fd5b614baa89828a01614669565b90975095505060208701356001600160401b03811115614bc957600080fd5b614bd589828a01614669565b9095509350614be990508860408901614993565b91506101408701356001600160401b03811115614c0557600080fd5b614c1189828a016149f0565b9150509295509295509295565b60008060408385031215614c3157600080fd5b8235614c3c8161443d565b915060208301356001600160401b03811115614c5757600080fd5b8301601f81018513614c6857600080fd5b8035614c766149258261485e565b8082825260208201915060208360051b850101925087831115614c9857600080fd5b6020840193505b82841015614cba578335825260209384019390910190614c9f565b809450505050509250929050565b602080825282518282018190526000918401906040840190835b81811015614d0657835163ffffffff16835260209384019390920191600101614ce2565b509095945050505050565b60008060208385031215614d2457600080fd5b82356001600160401b03811115614d3a57600080fd5b61441885828601614669565b6001600160601b0381168114610cf157600080fd5b600082601f830112614d6c57600080fd5b8135614d7a6149258261485e565b8082825260208201915060208360061b860101925085831115614d9c57600080fd5b602085015b83811015614df55760408188031215614db957600080fd5b614dc1614507565b8135614dcc81614487565b81526020820135614ddc81614d46565b6020828101919091529084529290920191604001614da1565b5095945050505050565b600080600060a08486031215614e1457600080fd5b614e1e8585614785565b92506060840135614e2e81614d46565b915060808401356001600160401b03811115614e4957600080fd5b614e5586828701614d5b565b9150509250925092565b600082601f830112614e7057600080fd5b8135614e7e6149258261485e565b80828252602082019150602060608402860101925085831115614ea057600080fd5b602085015b83811015614df557614eb78782614785565b8352602090920191606001614ea5565b600082601f830112614ed857600080fd5b8135614ee66149258261485e565b8082825260208201915060208360051b860101925085831115614f0857600080fd5b602085015b83811015614df5578035614f2081614d46565b835260209283019201614f0d565b600082601f830112614f3f57600080fd5b8135614f4d6149258261485e565b8082825260208201915060208360051b860101925085831115614f6f57600080fd5b602085015b83811015614df55780356001600160401b03811115614f9257600080fd5b614fa1886020838a0101614d5b565b84525060209283019201614f74565b600080600080600080600080610100898b031215614fcd57600080fd5b614fd68961449c565b9750614fe460208a0161449c565b9650614ff260408a0161449c565b955061500060608a0161449c565b94506080890135935060a08901356001600160401b0381111561502257600080fd5b61502e8b828c01614e5f565b93505060c08901356001600160401b0381111561504a57600080fd5b6150568b828c01614ec7565b92505060e08901356001600160401b0381111561507257600080fd5b61507e8b828c01614f2e565b9150509295985092959890939650565b60208101610ebc828461472f565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b8181101561510f576020818501810151868301820152016150f3565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061278260208301846150e9565b60006020828403121561515457600080fd5b815161278281614487565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156151bb57600080fd5b8151801515811461278257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261522a57600080fd5b8301803591506001600160401b0382111561524457600080fd5b6020019150600581901b360382131561408057600080fd5b60006020828403121561526e57600080fd5b81516127828161443d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ebc57610ebc615279565b600080858511156152b257600080fd5b838611156152bf57600080fd5b5050820193919092039150565b600060c0820188835260018060a01b038816602084015286604084015260c0606084015280865180835260e08501915060208801925060005b8181101561533b578351805160ff1684526020908101516001600160a01b03168185015290930192604090920191600101615305565b50506080840195909552505060a00152949350505050565b60006040828403121561536557600080fd5b6127828383614881565b81810381811115610ebc57610ebc615279565b60006001820161539457615394615279565b5060010190565b60018060a01b03841681528260208201526060604082015260006153c260608301846150e9565b95945050505050565b6000602082840312156153dd57600080fd5b81516001600160c01b038116811461278257600080fd5b634e487b7160e01b600052601260045260246000fd5b600082615419576154196153f4565b500690565b6001600160a01b03831681526040602082018190526000906145fc908301846150e9565b8281526040602082015260006145fc60408301846150e9565b60006020828403121561546d57600080fd5b5051919050565b6001600160a01b0384168152610160810161549c602083018580358252602090810135910152565b6154b6606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e0840137825161012083015260208301516101408301526145fc565b60018060a01b038316815260406020820152600082516060604084015261550e60a08401826150e9565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906153c2908301848661552f565b60018060a01b038516815283602082015260606040820152600061175b60608301848661552f565b600082601f8301126155b657600080fd5b81516155c46149258261485e565b8082825260208201915060208360051b8601019250858311156155e657600080fd5b602085015b83811015614df55780516155fe81614d46565b8352602092830192016155eb565b6000806040838503121561561f57600080fd5b82516001600160401b0381111561563557600080fd5b615641858286016155a5565b92505060208301516001600160401b0381111561565d57600080fd5b615669858286016155a5565b9150509250929050565b8381526040602082015260006153c260408301848661552f565b60006020828403121561569f57600080fd5b81516001600160401b038111156156b557600080fd5b8201601f810184136156c657600080fd5b80516156d46149258261485e565b8082825260208201915060208360051b8501019250868311156156f657600080fd5b6020840193505b8284101561175b5783516157108161443d565b8252602093840193909101906156fd565b60006020828403121561573357600080fd5b815161278281614d46565b60ff8181168382160190811115610ebc57610ebc615279565b60006060820160ff861683526001600160601b03851660208401526060604084015280845180835260808501915060208601925060005b818110156157ca57835180516001600160a01b031684526020908101516001600160601b0316818501529093019260409092019160010161578e565b5090979650505050505050565b600061ffff821661ffff81036157ef576157ef615279565b60010192915050565b60006020828403121561580a57600080fd5b81516001600160e01b03198116811461278257600080fd5b6001600160601b03818116838216029081169081811461476c5761476c615279565b60006001600160601b0383168061585d5761585d6153f4565b806001600160601b038416049150509291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a2646970667358221220b92168cdd7913389b4693f8d47acf022803b83aaede28b5d32f3a5d020a92d8264736f6c634300081b0033","gas_used":4575954,"gas_limit":6071698,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e6103393660046143e3565b610940565b005b61036061034e366004614424565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461444f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144ac565b610b5e565b61033e6103ea3660046145b4565b610b8a565b61033e6103fd366004614424565b610c34565b61033e6104103660046144ac565b610c41565b6103606104233660046144ac565b609f6020526000908152604090205481565b6103606104433660046144ac565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614424565b610cf4565b61049461047f366004614424565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614604565b610e31565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614637565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144ac565b610ec2565b6103b1610541366004614424565b610eeb565b61033e6105543660046144ac565b610f77565b61033e6105673660046144ac565b610f88565b6103b17f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e881565b6104946105a13660046144ac565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144ac565b610f99565b60405161036a9190614652565b61033e6105ed3660046146aa565b611018565b6106056106003660046144ac565b6113ee565b60405161036a9190614751565b61033e611462565b610494610628366004614637565b6001805460ff9092161b9081161490565b61033e6106473660046147d6565b61152e565b600154610360565b6103b17f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b6103b1610689366004614424565b611588565b6103b17f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b61033e6106c336600461480a565b6115b2565b61033e611707565b6103606106de3660046148c1565b61171b565b6103866106f1366004614424565b611765565b6000546103b1906201000090046001600160a01b031681565b6103b1611770565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614a61565b611789565b6103b17f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614b6e565b611aa2565b61036060a05481565b6107c66107c1366004614c1e565b611c07565b60405161036a9190614cc8565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614d11565b611cb6565b609c54610360565b61033e610823366004614dff565b611d1c565b61033e610836366004614fb0565b611d2f565b6108aa610849366004614637565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144ac565b611fef565b61033e6108ff366004614424565b612065565b6109336109123660046144ac565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a919061508e565b6001546002906004908116036109715760405162461bcd60e51b81526004016109689061509c565b60405180910390fd5b60005b82811015610a48576000848483818110610990576109906150d3565b90506020020160208101906109a591906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614719565b6002811115610a0157610a01614719565b90525080519091506000610a14826121c1565b90506000610a2a826001600160c01b031661222c565b9050610a378585836122f8565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a716150d3565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b666123e5565b6001600160a01b0316600090815260c860205260409020805460ff19166001179055565b60013360009081526099602052604090206001015460ff166002811115610bb357610bb3614719565b14610be85760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c2990849061512f565b60405180910390a250565b610c3c6123e5565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb89190615142565b6001600160a01b0316336001600160a01b031614610ce85760405162461bcd60e51b81526004016109689061515f565b610cf181612444565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6591906151a9565b610d815760405162461bcd60e51b8152600401610968906151cb565b60015481811614610dfa5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c29565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e6e57610e6e6150d3565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610eca6123e5565b6001600160a01b0316600090815260c860205260409020805460ff19169055565b6040516308f6629d60e31b8152600481018290526000907f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b0316906347b314e890602401602060405180830381865afa158015610f53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190615142565b610f7f6123e5565b610cf181612549565b610f906123e5565b610cf1816125b2565b6040805180820190915260008082526020820152610ebc6110137f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de684604051602001610ff89291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061261b565b612669565b6001546002906004908116036110405760405162461bcd60e51b81526004016109689061509c565b600061108884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90508483146110c25760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b838110156113e55760008585838181106110e1576110e16150d3565b919091013560f81c91503690506000898985818110611102576111026150d3565b90506020028101906111149190615213565b6040516379a0849160e11b815260ff8616600482015291935091507f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b03169063f341092290602401602060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a4919061525c565b63ffffffff1681146111e35760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b8281101561138a576000848483818110611203576112036150d3565b905060200201602081019061121891906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561126357611263614719565b600281111561127457611274614719565b90525080519091506000611287826121c1565b905060016001600160c01b03821660ff8b161c8116146112d45760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161131f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b5061137d83838f8f8d908e6001611336919061528f565b92611343939291906152a2565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122f892505050565b50909250506001016111e7565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a2505050508060010190506110c5565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561144857611448614719565b600281111561145957611459614719565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d391906151a9565b6114ef5760405162461bcd60e51b8152600401610968906151cb565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6115366123e5565b609654829060ff908116908216106115795760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115838383612789565b505050565b609c818154811061159857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146115f95760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116669187908790819084018382808284376000920191909152505060965460ff1691506126f89050565b90506000611673836121c1565b905060018085015460ff16600281111561168f5761168f614719565b1480156116a457506001600160c01b03821615155b80156116c257506116c26001600160c01b0383811690831681161490565b156113e5576113e58787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b61170f6123e5565b6117196000612bbe565b565b600061175b7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a8787878787604051602001610ff8969594939291906152cc565b9695505050505050565b6000610ebc826121c1565b60006117846064546001600160a01b031690565b905090565b60018054600091908116036117b05760405162461bcd60e51b81526004016109689061509c565b33600090815260c8602052604090205460ff166118015760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118395760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118453388612c10565b90506118a533828888808060200260200160405190810160405280939291908181526020016000905b8282101561189a5761188b60408302860136819003810190615353565b8152602001906001019061186e565b505050505087612d45565b60006118ec33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b90506000609760008e8e6000818110611907576119076150d3565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b909104909416928101929092528451805192945091611972576119726150d3565b602002602001015163ffffffff161115611a9357611a178d8d600081811061199c5761199c6150d3565b9050013560f81c60f81b60f81c83604001516000815181106119c0576119c06150d3565b60200260200101513385602001516000815181106119e0576119e06150d3565b60200260200101518c8c60008181106119fb576119fb6150d3565b905060400201803603810190611a119190615353565b866132e5565b611a9388886000818110611a2d57611a2d6150d3565b9050604002016020016020810190611a4591906144ac565b8e8e600090600192611a59939291906152a2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b50505050505050505050505050565b6001805460009190811603611ac95760405162461bcd60e51b81526004016109689061509c565b33600090815260c8602052604090205460ff16611b1a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b263385612c10565b90506000611b6f33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611bb757611bb76150d3565b602002602001015163ffffffff161115611bfc5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c2457611c246144c9565b604051908082528060200260200182016040528015611c4d578160200160208202803683370190505b50905060005b8351811015611cae57611c7f85858381518110611c7257611c726150d3565b60200260200101516134b4565b828281518110611c9157611c916150d3565b63ffffffff90921660209283029190910190910152600101611c53565b509392505050565b60018054600290811603611cdc5760405162461bcd60e51b81526004016109689061509c565b6115833384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b611d246123e5565b61158383838361356d565b600054610100900460ff1615808015611d4f5750600054600160ff909116105b80611d695750303b158015611d69575060005460ff166001145b611dcc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611def576000805461ff0019166101001790555b82518451148015611e01575081518351145b611e325760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e3b89612bbe565b611e45868661374f565b611e4e88612549565b611e57876125b2565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881166001600160a01b03199283161790925585548085018755850180547f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e841690831617905585549384019095559190920180547f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3690921691909316179091555b8451811015611f9e57611f96858281518110611f5557611f556150d3565b6020026020010151858381518110611f6f57611f6f6150d3565b6020026020010151858481518110611f8957611f896150d3565b602002602001015161356d565b600101611f37565b508015611bfc576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b611ff76123e5565b6001600160a01b03811661205c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610cf181612bbe565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dc9190615142565b6001600160a01b0316336001600160a01b03161461210c5760405162461bcd60e51b81526004016109689061515f565b60015419811960015419161461218a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c29565b6000818152609860205260408120548082036121e05750600092915050565b60008381526098602052604090206121f960018361536f565b81548110612209576122096150d3565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061223a8461383f565b61ffff166001600160401b03811115612255576122556144c9565b6040519080825280601f01601f19166020018201604052801561227f576020820181803683370190505b5090506000805b825182108015612297575061010081105b156122ee576001811b9350858416156122de578060f81b8383815181106122c0576122c06150d3565b60200101906001600160f81b031916908160001a9053508160010191505b6122e781615382565b9050612286565b5090949350505050565b60018260200151600281111561231057612310614719565b1461231a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816906366acfefe9061236f9088908690889060040161539b565b6020604051808303816000875af115801561238e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b291906153cb565b90506001600160c01b038116156123de576123de856123d9836001600160c01b031661222c565b612836565b5050505050565b336123ee611770565b6001600160a01b0316146117195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166124d25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ebc61262861386a565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806126996000805160206158738339815191528661540a565b90505b6126a581613991565b909350915060008051602061587383398151915282830983036126de576040805180820190915290815260208101919091529392505050565b60008051602061587383398151915260018208905061269c565b60008061270484613a13565b9050808360ff166001901b116127825760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff16600281111561286a5761286a614719565b1461289f5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b6096546000906128b390859060ff166126f8565b905060006128c0836121c1565b90506001600160c01b0382166129015760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129186001600160c01b0383811690831681161490565b61294d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129668482613b9b565b6001600160c01b038116612a355760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169063a364f4da90602401600060405180830381600087803b1580156129e657600080fd5b505af11580156129fa573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e169063f4e24fe590612a83908a908a9060040161541e565b600060405180830381600087803b158015612a9d57600080fd5b505af1158015612ab1573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816925063bd29b8cd9150612b039087908a90600401615442565b600060405180830381600087803b158015612b1d57600080fd5b505af1158015612b31573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616925063bd29b8cd9150612b839087908a90600401615442565b600060405180830381600087803b158015612b9d57600080fd5b505af1158015612bb1573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e909116906313542a4e90602401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f919061545b565b90506000819003610ebc577f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031663bf79ce588484612ce487610f99565b6040518463ffffffff1660e01b8152600401612d0293929190615474565b6020604051808303816000875af1158015612d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612782919061545b565b6020808201516000908152609a909152604090205460ff1615612d935760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612dcf5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e1a918891889188919061171b565b8351613d5c565b612e4560405180606001604052806060815260200160608152602001606081525090565b6000612e8d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90506000612e9a886121c1565b90506001600160c01b038216612edb5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f1d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612f55919061528f565b10612f8a5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612f948982613b9b565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051612fc4919061512f565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff166002811115612ffe57612ffe614719565b14613117576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff19169083600281111561305957613059614719565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169150639926ee7d906130ae908d9089906004016154e4565b600060405180830381600087803b1580156130c857600080fd5b505af11580156130dc573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e1690633fb2795290613167908d908c908c90600401615558565b600060405180830381600087803b15801561318157600080fd5b505af1158015613195573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169250632550477791506131eb908d908d908d908d9060040161557d565b6000604051808303816000875af115801561320a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613232919081019061560c565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36169062bff04d9061328f908c908c908c90600401615673565b6000604051808303816000875af11580156132ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132d6919081019061568d565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361333e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff161461337d5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690635401ed2790604401602060405180830381865afa1580156133ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134129190615721565b905061341e8185613f16565b6001600160601b0316866001600160601b0316116134645760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b61346e8885613f3a565b6001600160601b0316816001600160601b031610611bfc5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561353c5760016134d9828461536f565b6134e3919061536f565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613516576135166150d3565b60009182526020909120015463ffffffff1611613534575050610ebc565b6001016134c5565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135ac5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b6135b781600161573e565b6096805460ff191660ff92909216919091179055806135d68186612789565b60405160016296b58960e01b031981526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169063ff694a779061362990849088908890600401615757565b600060405180830381600087803b15801561364357600080fd5b505af1158015613657573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b031692506326d941f29150602401600060405180830381600087803b1580156136bf57600080fd5b505af11580156136d3573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561373b57600080fd5b505af1158015611bfc573d6000803e3d6000fd5b6000546201000090046001600160a01b031615801561377657506001600160a01b03821615155b6137f85760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261383b82612444565b5050565b6000805b8215610ebc5761385460018461536f565b9092169180613862816157d7565b915050613843565b6000306001600160a01b037f0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd00161480156138c357507f0000000000000000000000000000000000000000000000000000000000007a6946145b156138ed57507fc6374306ca0c3d05fd3f0cebbec8fc4308f71679c06b0e30a95d8c9709d43dae90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f6ec8a99f0e7f9ebde7354a446dcb9423f3af9c58f386a53c59c5b384f9e82d11828401527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a9960608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615873833981519152600360008051602061587383398151915286600080516020615873833981519152888909090890506000613a07827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615873833981519152613f54565b91959194509092505050565b600061010082511115613a9c5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613aad57506000919050565b60008083600081518110613ac357613ac36150d3565b0160200151600160f89190911c81901b92505b8451811015613b9257848181518110613af157613af16150d3565b0160200151600160f89190911c1b9150828211613b865760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613ad6565b50909392505050565b60008281526098602052604081205490819003613c43576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613c5c60018461536f565b81548110613c6c57613c6c6150d3565b6000918252602090912001805490915063ffffffff438116911603613cae5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613e7657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613d9c9086908690600401615442565b602060405180830381865afa158015613db9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ddd91906157f8565b6001600160e01b031916146115835760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613e8a8383613ffd565b6001600160a01b0316146115835760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f309061ffff1685615822565b6127829190615844565b604081015160009061271090613f309061ffff1685615822565b600080613f5f614363565b613f67614381565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fa457fe5b5082613ff25760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061400c8585614019565b91509150611cae81614087565b600080825160410361404f5760208301516040840151606085015160001a6140438782858561423d565b94509450505050614080565b8251604003614078576020830151604084015161406d86838361432a565b935093505050614080565b506000905060025b9250929050565b600081600481111561409b5761409b614719565b036140a35750565b60018160048111156140b7576140b7614719565b036141045760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561411857614118614719565b036141655760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b600381600481111561417957614179614719565b036141d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b60048160048111156141e5576141e5614719565b03610cf15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142745750600090506003614321565b8460ff16601b1415801561428c57508460ff16601c14155b1561429d5750600090506004614321565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156142f1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661431a57600060019250925050614321565b9150600090505b94509492505050565b6000806001600160ff1b0383168161434760ff86901c601b61528f565b90506143558782888561423d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f8401126143b157600080fd5b5081356001600160401b038111156143c857600080fd5b6020830191508360208260051b850101111561408057600080fd5b600080602083850312156143f657600080fd5b82356001600160401b0381111561440c57600080fd5b6144188582860161439f565b90969095509350505050565b60006020828403121561443657600080fd5b5035919050565b63ffffffff81168114610cf157600080fd5b60008060006060848603121561446457600080fd5b8335925060208401356144768161443d565b929592945050506040919091013590565b6001600160a01b0381168114610cf157600080fd5b80356144a781614487565b919050565b6000602082840312156144be57600080fd5b813561278281614487565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614501576145016144c9565b60405290565b604080519081016001600160401b0381118282101715614501576145016144c9565b604051601f8201601f191681016001600160401b0381118282101715614551576145516144c9565b604052919050565b6000806001600160401b03841115614573576145736144c9565b50601f8301601f191660200161458881614529565b91505082815283838301111561459d57600080fd5b828260208301376000602084830101529392505050565b6000602082840312156145c657600080fd5b81356001600160401b038111156145dc57600080fd5b8201601f810184136145ed57600080fd5b6145fc84823560208401614559565b949350505050565b6000806040838503121561461757600080fd5b50508035926020909101359150565b803560ff811681146144a757600080fd5b60006020828403121561464957600080fd5b61278282614626565b815181526020808301519082015260408101610ebc565b60008083601f84011261467b57600080fd5b5081356001600160401b0381111561469257600080fd5b60208301915083602082850101111561408057600080fd5b600080600080604085870312156146c057600080fd5b84356001600160401b038111156146d657600080fd5b6146e28782880161439f565b90955093505060208501356001600160401b0381111561470157600080fd5b61470d87828801614669565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061474d57634e487b7160e01b600052602160045260246000fd5b9052565b81518152602080830151604083019161476c9084018261472f565b5092915050565b803561ffff811681146144a757600080fd5b60006060828403121561479757600080fd5b61479f6144df565b905081356147ac8161443d565b81526147ba60208301614773565b60208201526147cb60408301614773565b604082015292915050565b600080608083850312156147e957600080fd5b6147f283614626565b91506148018460208501614785565b90509250929050565b60008060006040848603121561481f57600080fd5b833561482a81614487565b925060208401356001600160401b0381111561484557600080fd5b61485186828701614669565b9497909650939450505050565b60006001600160401b03821115614877576148776144c9565b5060051b60200190565b60006040828403121561489357600080fd5b61489b614507565b90506148a682614626565b815260208201356148b681614487565b602082015292915050565b600080600080600060a086880312156148d957600080fd5b85356148e481614487565b94506020860135935060408601356001600160401b0381111561490657600080fd5b8601601f8101881361491757600080fd5b803561492a6149258261485e565b614529565b8082825260208201915060208360061b85010192508a83111561494c57600080fd5b6020840193505b82841015614978576149658b85614881565b8252602082019150604084019350614953565b979a9699509697606081013597506080013595945050505050565b600061010082840312156149a657600080fd5b50919050565b60008083601f8401126149be57600080fd5b5081356001600160401b038111156149d557600080fd5b6020830191508360208260061b850101111561408057600080fd5b600060608284031215614a0257600080fd5b614a0a6144df565b905081356001600160401b03811115614a2257600080fd5b8201601f81018413614a3357600080fd5b614a4284823560208401614559565b8252506020828101359082015260409182013591810191909152919050565b60008060008060008060008060006101a08a8c031215614a8057600080fd5b89356001600160401b03811115614a9657600080fd5b614aa28c828d01614669565b909a5098505060208a01356001600160401b03811115614ac157600080fd5b614acd8c828d01614669565b9098509650614ae190508b60408c01614993565b94506101408a01356001600160401b03811115614afd57600080fd5b614b098c828d016149ac565b9095509350506101608a01356001600160401b03811115614b2957600080fd5b614b358c828d016149f0565b9250506101808a01356001600160401b03811115614b5257600080fd5b614b5e8c828d016149f0565b9150509295985092959850929598565b6000806000806000806101608789031215614b8857600080fd5b86356001600160401b03811115614b9e57600080fd5b614baa89828a01614669565b90975095505060208701356001600160401b03811115614bc957600080fd5b614bd589828a01614669565b9095509350614be990508860408901614993565b91506101408701356001600160401b03811115614c0557600080fd5b614c1189828a016149f0565b9150509295509295509295565b60008060408385031215614c3157600080fd5b8235614c3c8161443d565b915060208301356001600160401b03811115614c5757600080fd5b8301601f81018513614c6857600080fd5b8035614c766149258261485e565b8082825260208201915060208360051b850101925087831115614c9857600080fd5b6020840193505b82841015614cba578335825260209384019390910190614c9f565b809450505050509250929050565b602080825282518282018190526000918401906040840190835b81811015614d0657835163ffffffff16835260209384019390920191600101614ce2565b509095945050505050565b60008060208385031215614d2457600080fd5b82356001600160401b03811115614d3a57600080fd5b61441885828601614669565b6001600160601b0381168114610cf157600080fd5b600082601f830112614d6c57600080fd5b8135614d7a6149258261485e565b8082825260208201915060208360061b860101925085831115614d9c57600080fd5b602085015b83811015614df55760408188031215614db957600080fd5b614dc1614507565b8135614dcc81614487565b81526020820135614ddc81614d46565b6020828101919091529084529290920191604001614da1565b5095945050505050565b600080600060a08486031215614e1457600080fd5b614e1e8585614785565b92506060840135614e2e81614d46565b915060808401356001600160401b03811115614e4957600080fd5b614e5586828701614d5b565b9150509250925092565b600082601f830112614e7057600080fd5b8135614e7e6149258261485e565b80828252602082019150602060608402860101925085831115614ea057600080fd5b602085015b83811015614df557614eb78782614785565b8352602090920191606001614ea5565b600082601f830112614ed857600080fd5b8135614ee66149258261485e565b8082825260208201915060208360051b860101925085831115614f0857600080fd5b602085015b83811015614df5578035614f2081614d46565b835260209283019201614f0d565b600082601f830112614f3f57600080fd5b8135614f4d6149258261485e565b8082825260208201915060208360051b860101925085831115614f6f57600080fd5b602085015b83811015614df55780356001600160401b03811115614f9257600080fd5b614fa1886020838a0101614d5b565b84525060209283019201614f74565b600080600080600080600080610100898b031215614fcd57600080fd5b614fd68961449c565b9750614fe460208a0161449c565b9650614ff260408a0161449c565b955061500060608a0161449c565b94506080890135935060a08901356001600160401b0381111561502257600080fd5b61502e8b828c01614e5f565b93505060c08901356001600160401b0381111561504a57600080fd5b6150568b828c01614ec7565b92505060e08901356001600160401b0381111561507257600080fd5b61507e8b828c01614f2e565b9150509295985092959890939650565b60208101610ebc828461472f565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b8181101561510f576020818501810151868301820152016150f3565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061278260208301846150e9565b60006020828403121561515457600080fd5b815161278281614487565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156151bb57600080fd5b8151801515811461278257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261522a57600080fd5b8301803591506001600160401b0382111561524457600080fd5b6020019150600581901b360382131561408057600080fd5b60006020828403121561526e57600080fd5b81516127828161443d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ebc57610ebc615279565b600080858511156152b257600080fd5b838611156152bf57600080fd5b5050820193919092039150565b600060c0820188835260018060a01b038816602084015286604084015260c0606084015280865180835260e08501915060208801925060005b8181101561533b578351805160ff1684526020908101516001600160a01b03168185015290930192604090920191600101615305565b50506080840195909552505060a00152949350505050565b60006040828403121561536557600080fd5b6127828383614881565b81810381811115610ebc57610ebc615279565b60006001820161539457615394615279565b5060010190565b60018060a01b03841681528260208201526060604082015260006153c260608301846150e9565b95945050505050565b6000602082840312156153dd57600080fd5b81516001600160c01b038116811461278257600080fd5b634e487b7160e01b600052601260045260246000fd5b600082615419576154196153f4565b500690565b6001600160a01b03831681526040602082018190526000906145fc908301846150e9565b8281526040602082015260006145fc60408301846150e9565b60006020828403121561546d57600080fd5b5051919050565b6001600160a01b0384168152610160810161549c602083018580358252602090810135910152565b6154b6606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e0840137825161012083015260208301516101408301526145fc565b60018060a01b038316815260406020820152600082516060604084015261550e60a08401826150e9565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906153c2908301848661552f565b60018060a01b038516815283602082015260606040820152600061175b60608301848661552f565b600082601f8301126155b657600080fd5b81516155c46149258261485e565b8082825260208201915060208360051b8601019250858311156155e657600080fd5b602085015b83811015614df55780516155fe81614d46565b8352602092830192016155eb565b6000806040838503121561561f57600080fd5b82516001600160401b0381111561563557600080fd5b615641858286016155a5565b92505060208301516001600160401b0381111561565d57600080fd5b615669858286016155a5565b9150509250929050565b8381526040602082015260006153c260408301848661552f565b60006020828403121561569f57600080fd5b81516001600160401b038111156156b557600080fd5b8201601f810184136156c657600080fd5b80516156d46149258261485e565b8082825260208201915060208360051b8501019250868311156156f657600080fd5b6020840193505b8284101561175b5783516157108161443d565b8252602093840193909101906156fd565b60006020828403121561573357600080fd5b815161278281614d46565b60ff8181168382160190811115610ebc57610ebc615279565b60006060820160ff861683526001600160601b03851660208401526060604084015280845180835260808501915060208601925060005b818110156157ca57835180516001600160a01b031684526020908101516001600160601b0316818501529093019260409092019160010161578e565b5090979650505050505050565b600061ffff821661ffff81036157ef576157ef615279565b60010192915050565b60006020828403121561580a57600080fd5b81516001600160e01b03198116811461278257600080fd5b6001600160601b03818116838216029081169081811461476c5761476c615279565b60006001600160601b0383168061585d5761585d6153f4565b806001600160601b038416049150509291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a2646970667358221220b92168cdd7913389b4693f8d47acf022803b83aaede28b5d32f3a5d020a92d8264736f6c634300081b0033","nonce":46,"gas_used":4992262},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x98852f","logs":[{"address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xc3a6dcac3748c6c5456194f4d0559acb3fce93bdb951a1aaf5e92d91230fcb99","block_number":6},{"info":{"transaction_hash":"0xe2b4d24e795cbb803b38d6fdd8161d085bc59492340545f2b4192b1f333f7efc","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xa82ff9afd8f496c3d6ac40e2a0f282e47488cfc9","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xa82ff9afd8f496c3d6ac40e2a0f282e47488cfc9","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052348015600f57600080fd5b506104518061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c3565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e0565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610335565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead8160008151811061020457610204610405565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b602080825282518282018190526000918401906040840190835b818110156102b85783516001600160a01b0316835260209384019390920191600101610291565b509095945050505050565b6000602082840312156102d557600080fd5b813561013381610226565b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033081610226565b919050565b60006020828403121561034757600080fd5b815167ffffffffffffffff81111561035e57600080fd5b8201601f8101841361036f57600080fd5b805167ffffffffffffffff8111156103895761038961030f565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156103b6576103b661030f565b6040529182526020818401810192908101878411156103d457600080fd5b6020850194505b838510156103fa576103ec85610325565b8152602094850194016103db565b509695505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220638dfc50b48b81ce46f08a524306ba539127d28202ba77d2bd972c2f6f7bb7b864736f6c634300081b0033","output":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c3565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e0565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610335565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead8160008151811061020457610204610405565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b602080825282518282018190526000918401906040840190835b818110156102b85783516001600160a01b0316835260209384019390920191600101610291565b509095945050505050565b6000602082840312156102d557600080fd5b813561013381610226565b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033081610226565b919050565b60006020828403121561034757600080fd5b815167ffffffffffffffff81111561035e57600080fd5b8201601f8101841361036f57600080fd5b805167ffffffffffffffff8111156103895761038961030f565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156103b6576103b661030f565b6040529182526020818401810192908101878411156103d457600080fd5b6020850194505b838510156103fa576103ec85610325565b8152602094850194016103db565b509695505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220638dfc50b48b81ce46f08a524306ba539127d28202ba77d2bd972c2f6f7bb7b864736f6c634300081b0033","gas_used":221263,"gas_limit":308739,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c3565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e0565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610335565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead8160008151811061020457610204610405565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b602080825282518282018190526000918401906040840190835b818110156102b85783516001600160a01b0316835260209384019390920191600101610291565b509095945050505050565b6000602082840312156102d557600080fd5b813561013381610226565b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033081610226565b919050565b60006020828403121561034757600080fd5b815167ffffffffffffffff81111561035e57600080fd5b8201601f8101841361036f57600080fd5b805167ffffffffffffffff8111156103895761038961030f565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156103b6576103b661030f565b6040529182526020818401810192908101878411156103d457600080fd5b6020850194505b838510156103fa576103ec85610325565b8152602094850194016103db565b509695505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220638dfc50b48b81ce46f08a524306ba539127d28202ba77d2bd972c2f6f7bb7b864736f6c634300081b0033","nonce":34,"gas_used":291899},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4743b","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x954fd7ecc31365f6bc4688905df1ef72db374fe08559b7771e709e03db20c1e2","block_number":2},{"info":{"transaction_hash":"0x245ce1c4eeb5ceb2ec58663b3425259120d529d7ec97ac88dda2e4d833f539df","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":19655,"gas_limit":35962,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef286000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":13359,"gas_limit":29250,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","address":"0x959922be3caee4b8cd9a407cc3ac1c251c2007b1","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x1794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":456,"gas_limit":16309,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Stop","out":"0x","nonce":21,"gas_used":42775},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x5b3b8","logs":[{"address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000002000000000010000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xdc661eb62f3503115532a4a4ebf9dbb29830a7f54b0435e7188a418d1ac7faf1","block_number":12},{"info":{"transaction_hash":"0x6915eb414cbf032995fc0585e67953f7007bd585042661bfff519ed442f40c91","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd8200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":141257,"gas_limit":204060,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd8200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084cf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":134873,"gas_limit":194635,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd82"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xcf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":121894,"gas_limit":179035,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":20,"gas_used":164733},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x50ca1","logs":[{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd82"],"data":"0x"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000000000000100000400000000000000000000000000000000400000002000001000000000010000000000000000000000000020000000000000100800808000004000000000000000000000000400000000100000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000008000000000000000000100020400000200000000000040000000000002028000000000000000020000000000000000000000000000000000000000001080000000100000000400000"},"block_hash":"0xdc661eb62f3503115532a4a4ebf9dbb29830a7f54b0435e7188a418d1ac7faf1","block_number":12},{"info":{"transaction_hash":"0xf1758982dc7bf99172677ea91a0550c18e81f94f596a492e4a70e35aca4d7a0f","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a06040523480156200001157600080fd5b5060405162001d4038038062001d40833981016040819052620000349162000116565b6001600160a01b038116608052806200004c62000054565b505062000148565b600054610100900460ff1615620000c15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000114576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012957600080fd5b81516001600160a01b03811681146200014157600080fd5b9392505050565b608051611bc76200017960003960008181610216015281816107a801528181610b490152610c130152611bc76000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000000000000000000000000000000000000000000081565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220157b8fd2af6cc8480450ce674c8687dcbdc3c3a46aa68acd19633d494b70b35b64736f6c63430008180033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9","output":"0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220157b8fd2af6cc8480450ce674c8687dcbdc3c3a46aa68acd19633d494b70b35b64736f6c63430008180033","gas_used":1447443,"gas_limit":1931988,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220157b8fd2af6cc8480450ce674c8687dcbdc3c3a46aa68acd19633d494b70b35b64736f6c63430008180033","nonce":26,"gas_used":1617189},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x18ad25","logs":[{"address":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000001000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000200000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xaa8cafe1e3a77a900e4c02e1008708ebeb53ed2b67bc69ab5ecdbc2cb3c12764","block_number":16},{"info":{"transaction_hash":"0xb02326216f7078ab71c5aeb30702c1981388c12cefe2b4368b3600f6686ea6d4","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6101006040523480156200001257600080fd5b5060405162005beb38038062005beb833981016040819052620000359162000140565b6001600160a01b0380841660805280821660c052821660a0526200005862000065565b50504660e0525062000194565b600054610100900460ff1615620000d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000125576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013d57600080fd5b50565b6000806000606084860312156200015657600080fd5b8351620001638162000127565b6020850151909350620001768162000127565b6040850151909250620001898162000127565b809150509250925092565b60805160a05160c05160e0516159c26200022960003960006126560152600081816105b10152818161101d0152818161139901528181611be5015281816129b001528181613e5b0152614347015260006107620152600081816104f901528181610feb0152818161136701528181611c7901528181612a7d01528181612c0001528181613f8101526143ed01526159c26000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614954565b610de8565b005b6103da6103ea3660046149a7565b610f2d565b6103da6103fd3660046149cb565b610fe0565b6103da610410366004614a0c565b611097565b6103da610423366004614a25565b6111d6565b61035a6104363660046149a7565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149cb565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a90565b611218565b6103da6104bc3660046149cb565b61135c565b61035a6104cf3660046149a7565b609b6020526000908152604090205481565b6103da6104ef366004614b37565b61140c565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610364565b61051b6105413660046149a7565b6001600160a01b039081166000908152609960205260409020600101541690565b6105756105703660046149a7565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e3c565b611626565b610575610606366004614e78565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614ea9565b611656565b6103da610644366004614a0c565b6116ef565b61051b6106573660046149a7565b609a602052600090815260409020546001600160a01b031681565b6105756106803660046149a7565b611700565b6103da611721565b61035a61069b366004614f38565b609860209081526000928352604080842090915290825290205481565b6103da6106c6366004615019565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150a9565b611961565b6040516103649190615134565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da610738366004615147565b611a33565b61035a61074b3660046149a7565b609f6020526000908152604090205481565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b610575610792366004614a0c565b609e6020526000908152604090205460ff1681565b6105756107b536600461517c565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec3660046149a7565b60a16020526000908152604090205481565b61086e61080c3660046149a7565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151a8565b611b05565b61035a62034bc081565b6108d46108cf3660046149a7565b611bbe565b60405161036492919061522a565b6103ba6108f03660046149a7565b611f75565b6103da61090336600461524f565b61242e565b6103da6109163660046152a7565b61254b565b6103da6109293660046149a7565b6125dc565b61035a612652565b6103da610944366004614a0c565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152c3565b905060200201602081019061098691906149a7565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152d9565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614bd9565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152c3565b9050602002810190610b4e9190615310565b610b5c906020810190615330565b9050878783818110610b7057610b706152c3565b9050602002810190610b829190615310565b610b8c9080615330565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152c3565b9050602002810190610c269190615310565b610c379060608101906040016149a7565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152c3565b9050602002810190610cdc9190615310565b610ced9060608101906040016149a7565b8a8a86818110610cff57610cff6152c3565b9050602002810190610d119190615310565b610d1b9080615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152c3565b9050602002810190610d739190615310565b610d81906020810190615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152c3565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615379565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153cb565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa491906153fa565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615417565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061103f5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61105b5760405162461bcd60e51b8152600401610ab590615461565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154be565b61111f5760405162461bcd60e51b8152600401610ab5906154db565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806113bb5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113d75760405162461bcd60e51b8152600401610ab590615461565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152c3565b90506020028101906114bd9190615523565b8989848181106114cf576114cf6152c3565b90506020028101906114e19190615330565b8989868181106114f3576114f36152c3565b9050602002013588888781811061150c5761150c6152c3565b90506020020160208101906115219190615539565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154be565b6115e75760405162461bcd60e51b8152600401610ab5906154db565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155ca565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614bd9565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152c3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152c3565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153cb565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5291906155dd565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea9190810190615655565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152c3565b602002602001018181525050611f68565b8351611dc7906001615725565b6001600160401b03811115611dde57611dde614bd9565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614bd9565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152c3565b6020026020010151838281518110611e8757611e876152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152c3565b6020026020010151828281518110611ed357611ed36152c3565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615738565b81518110611f1b57611f1b6152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615738565b81518110611f5b57611f5b6152c3565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152d9565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614bd9565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152c3565b602002602001015182600081518110612396576123966152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152c3565b6020026020010151816000815181106123e3576123e36152c3565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152c3565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f00000000000000000000000000000000000000000000000000000000000000004603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270691906153fa565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615417565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152c3565b602002602001015186858151811061295b5761295b6152c3565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152c3565b60200260200101516001600160a01b031603612a60577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb89888584815181106129f0576129f06152c3565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612abc57612abc6152c3565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154be565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612c4057612c406152c3565b6020026020010151868581518110612c5a57612c5a6152c3565b60200260200101516040518463ffffffff1660e01b8152600401612c809392919061574b565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361576f565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d999083908590615788565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157a1565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157a1565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c82826157de565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615379565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152d9565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152c3565b6020026020010151858581518110613220576132206152c3565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615738565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f9392919061574b565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152c3565b90506020020160208101906134be91906149a7565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152c3565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615725565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f9392919061574b565b60006139776105f387615841565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157a1565b63ffffffff16613a1d9190615725565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab560608701604088016149a7565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615330565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615330565b9050811015613d23574360a16000613c0b60a08b018b615330565b85818110613c1b57613c1b6152c3565b9050602002016020810190613c3091906149a7565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157a1565b63ffffffff16613c6a9190615725565b1115613c885760405162461bcd60e51b8152600401610ab59061584d565b613d1b613c9860208901896149a7565b33613ca660a08b018b615330565b85818110613cb657613cb66152c3565b9050602002016020810190613ccb91906149a7565b613cd860c08c018c615330565b86818110613ce857613ce86152c3565b905060200201358a8a87818110613d0157613d016152c3565b9050602002016020810190613d1691906149a7565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615330565b9050811015614114574360a16000613d6c60a08c018c615330565b85818110613d7c57613d7c6152c3565b9050602002016020810190613d9191906149a7565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157a1565b63ffffffff16613dcb9190615725565b1115613de95760405162461bcd60e51b8152600401610ab59061584d565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615330565b83818110613e1b57613e1b6152c3565b9050602002016020810190613e3091906149a7565b6001600160a01b031603613f7f576000613e4d60208a018a6149a7565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613e8e60c08e018e615330565b87818110613e9e57613e9e6152c3565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1691906155dd565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615330565b88818110613f5c57613f5c6152c3565b9050602002016020810190613f7191906149a7565b856138ee565b50505061410c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea133898985818110613fc157613fc16152c3565b9050602002016020810190613fd691906149a7565b613fe360a08d018d615330565b86818110613ff357613ff36152c3565b905060200201602081019061400891906149a7565b61401560c08e018e615330565b87818110614025576140256152c3565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615330565b858181106140ce576140ce6152c3565b90506020020160208101906140e391906149a7565b6140f060c08d018d615330565b86818110614100576141006152c3565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061419290869086906004016158d5565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d3919061592c565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b1300906143809088908890879060040161574b565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615956565b036144f25750565b600181600481111561450657614506615956565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615956565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615956565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615956565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615725565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b6020808252825182820181905260009190848201906040850190845b818110156148ef578351835292840192918401916001016148d3565b50909695505050505050565b60006060828403121561490d57600080fd5b50919050565b60008083601f84011261492557600080fd5b5081356001600160401b0381111561493c57600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561496957600080fd5b61497385856148fb565b925060608401356001600160401b0381111561498e57600080fd5b61499a86828701614913565b9497909650939450505050565b6000602082840312156149b957600080fd5b81356149c481614837565b9392505050565b6000806000606084860312156149e057600080fd5b83356149eb81614837565b925060208401356149fb81614837565b929592945050506040919091013590565b600060208284031215614a1e57600080fd5b5035919050565b60008060008060408587031215614a3b57600080fd5b84356001600160401b0380821115614a5257600080fd5b614a5e888389016147b2565b90965094506020870135915080821115614a7757600080fd5b50614a84878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aac57600080fd5b8835614ab781614837565b97506020890135614ac781614837565b9650604089013595506060890135945060808901356001600160401b0380821115614af157600080fd5b614afd8c838d016147b2565b909650945060a08b0135915080821115614b1657600080fd5b50614b238b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b5357600080fd5b88356001600160401b0380821115614b6a57600080fd5b614b768c838d016147b2565b909a50985060208b0135915080821115614b8f57600080fd5b614b9b8c838d016147b2565b909850965060408b0135915080821115614bb457600080fd5b614bc08c838d016147b2565b909650945060608b0135915080821115614b1657600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1157614c11614bd9565b60405290565b604080519081016001600160401b0381118282101715614c1157614c11614bd9565b604051601f8201601f191681016001600160401b0381118282101715614c6157614c61614bd9565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c69565b60006001600160401b03821115614c9f57614c9f614bd9565b5060051b60200190565b600082601f830112614cba57600080fd5b81356020614ccf614cca83614c86565b614c39565b8083825260208201915060208460051b870101935086841115614cf157600080fd5b602086015b84811015614d16578035614d0981614837565b8352918301918301614cf6565b509695505050505050565b600082601f830112614d3257600080fd5b81356020614d42614cca83614c86565b8083825260208201915060208460051b870101935086841115614d6457600080fd5b602086015b84811015614d165780358352918301918301614d69565b600060e08284031215614d9257600080fd5b614d9a614bef565b9050614da58261484c565b8152614db36020830161484c565b6020820152614dc46040830161484c565b604082015260608201356060820152614ddf60808301614c7b565b608082015260a08201356001600160401b0380821115614dfe57600080fd5b614e0a85838601614ca9565b60a084015260c0840135915080821115614e2357600080fd5b50614e3084828501614d21565b60c08301525092915050565b600060208284031215614e4e57600080fd5b81356001600160401b03811115614e6457600080fd5b614e7084828501614d80565b949350505050565b600060208284031215614e8a57600080fd5b813560ff811681146149c457600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ec157600080fd5b85356001600160401b0380821115614ed857600080fd5b9087019060e0828a031215614eec57600080fd5b90955060208701359080821115614f0257600080fd5b50614f0f888289016147b2565b909550935050604086013591506060860135614f2a81614e9b565b809150509295509295909350565b60008060408385031215614f4b57600080fd5b8235614f5681614837565b91506020830135614f6681614837565b809150509250929050565b600060408284031215614f8357600080fd5b614f8b614c17565b905081356001600160401b0380821115614fa457600080fd5b818401915084601f830112614fb857600080fd5b8135602082821115614fcc57614fcc614bd9565b614fde601f8301601f19168201614c39565b92508183528681838601011115614ff457600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a0868803121561503157600080fd5b853561503c81614837565b9450602086013561504c81614837565b935060408601356001600160401b038082111561506857600080fd5b61507489838a01614f71565b9450606088013591508082111561508a57600080fd5b5061509788828901614f71565b95989497509295608001359392505050565b600080604083850312156150bc57600080fd5b82356150c781614837565b915060208301356001600160401b038111156150e257600080fd5b6150ee85828601614ca9565b9150509250929050565b60008151808452602080850194506020840160005b838110156151295781518752958201959082019060010161510d565b509495945050505050565b6020815260006149c460208301846150f8565b6000806020838503121561515a57600080fd5b82356001600160401b0381111561517057600080fd5b61482b85828601614913565b6000806040838503121561518f57600080fd5b823561519a81614837565b946020939093013593505050565b600080600080608085870312156151be57600080fd5b84356151c981614837565b93506020850135925060408501356151e081614837565b9396929550929360600135925050565b60008151808452602080850194506020840160005b838110156151295781516001600160a01b031687529582019590820190600101615205565b60408152600061523d60408301856151f0565b828103602084015261120f81856150f8565b60008060006060848603121561526457600080fd5b833561526f81614837565b925060208401356001600160401b0381111561528a57600080fd5b61529686828701614f71565b925050604084013590509250925092565b6000606082840312156152b957600080fd5b6149c483836148fb565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261532657600080fd5b9190910192915050565b6000808335601e1984360301811261534757600080fd5b8301803591506001600160401b0382111561536157600080fd5b6020019150600581901b36038213156144cf57600080fd5b60608101823561538881614837565b6001600160a01b0390811683526020840135906153a482614837565b16602083015260408301356153b881614c69565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561540c57600080fd5b81516149c481614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154d057600080fd5b81516149c481614e9b565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261532657600080fd5b60006020828403121561554b57600080fd5b81356149c481614e9b565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a08501526155b160e08501826151f0565b905060c083015184820360c086015261120f82826150f8565b6020815260006149c46020830184615556565b6000602082840312156155ef57600080fd5b5051919050565b600082601f83011261560757600080fd5b81516020615617614cca83614c86565b8083825260208201915060208460051b87010193508684111561563957600080fd5b602086015b84811015614d16578051835291830191830161563e565b6000806040838503121561566857600080fd5b82516001600160401b038082111561567f57600080fd5b818501915085601f83011261569357600080fd5b815160206156a3614cca83614c86565b82815260059290921b840181019181810190898411156156c257600080fd5b948201945b838610156156e95785516156da81614837565b825294820194908201906156c7565b9188015191965090935050508082111561570257600080fd5b506150ee858286016155f6565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261570f565b818103818111156109c2576109c261570f565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157815761578161570f565b5060010190565b828152604060208201526000614e706040830184615556565b6000602082840312156157b357600080fd5b81356149c481614c69565b80546001600160a01b0319166001600160a01b0392909216919091179055565b81356157e981614837565b6157f381836157be565b5060018101602083013561580681614837565b61581081836157be565b50604083013561581f81614c69565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d80565b6020808252606e9082015260008051602061596d83398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b8281526000602060406020840152835180604085015260005b8181101561590a578581018301518582016060015282016158ee565b506000606082860101526060601f19601f830116850101925050509392505050565b60006020828403121561593e57600080fd5b81516001600160e01b0319811681146149c457600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a264697066735822122077e25f9c65861d9bf718b537427551bab355394bebd5f95b15c4df6972929f1b64736f6c63430008180033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c8530000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6","output":"0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614954565b610de8565b005b6103da6103ea3660046149a7565b610f2d565b6103da6103fd3660046149cb565b610fe0565b6103da610410366004614a0c565b611097565b6103da610423366004614a25565b6111d6565b61035a6104363660046149a7565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149cb565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a90565b611218565b6103da6104bc3660046149cb565b61135c565b61035a6104cf3660046149a7565b609b6020526000908152604090205481565b6103da6104ef366004614b37565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b6105413660046149a7565b6001600160a01b039081166000908152609960205260409020600101541690565b6105756105703660046149a7565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e3c565b611626565b610575610606366004614e78565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614ea9565b611656565b6103da610644366004614a0c565b6116ef565b61051b6106573660046149a7565b609a602052600090815260409020546001600160a01b031681565b6105756106803660046149a7565b611700565b6103da611721565b61035a61069b366004614f38565b609860209081526000928352604080842090915290825290205481565b6103da6106c6366004615019565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150a9565b611961565b6040516103649190615134565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da610738366004615147565b611a33565b61035a61074b3660046149a7565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a0c565b609e6020526000908152604090205460ff1681565b6105756107b536600461517c565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec3660046149a7565b60a16020526000908152604090205481565b61086e61080c3660046149a7565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151a8565b611b05565b61035a62034bc081565b6108d46108cf3660046149a7565b611bbe565b60405161036492919061522a565b6103ba6108f03660046149a7565b611f75565b6103da61090336600461524f565b61242e565b6103da6109163660046152a7565b61254b565b6103da6109293660046149a7565b6125dc565b61035a612652565b6103da610944366004614a0c565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152c3565b905060200201602081019061098691906149a7565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152d9565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614bd9565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152c3565b9050602002810190610b4e9190615310565b610b5c906020810190615330565b9050878783818110610b7057610b706152c3565b9050602002810190610b829190615310565b610b8c9080615330565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152c3565b9050602002810190610c269190615310565b610c379060608101906040016149a7565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152c3565b9050602002810190610cdc9190615310565b610ced9060608101906040016149a7565b8a8a86818110610cff57610cff6152c3565b9050602002810190610d119190615310565b610d1b9080615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152c3565b9050602002810190610d739190615310565b610d81906020810190615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152c3565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615379565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153cb565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa491906153fa565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615417565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab590615461565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154be565b61111f5760405162461bcd60e51b8152600401610ab5906154db565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab590615461565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152c3565b90506020028101906114bd9190615523565b8989848181106114cf576114cf6152c3565b90506020028101906114e19190615330565b8989868181106114f3576114f36152c3565b9050602002013588888781811061150c5761150c6152c3565b90506020020160208101906115219190615539565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154be565b6115e75760405162461bcd60e51b8152600401610ab5906154db565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155ca565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614bd9565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152c3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152c3565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153cb565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5291906155dd565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea9190810190615655565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152c3565b602002602001018181525050611f68565b8351611dc7906001615725565b6001600160401b03811115611dde57611dde614bd9565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614bd9565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152c3565b6020026020010151838281518110611e8757611e876152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152c3565b6020026020010151828281518110611ed357611ed36152c3565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615738565b81518110611f1b57611f1b6152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615738565b81518110611f5b57611f5b6152c3565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152d9565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614bd9565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152c3565b602002602001015182600081518110612396576123966152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152c3565b6020026020010151816000815181106123e3576123e36152c3565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152c3565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270691906153fa565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615417565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152c3565b602002602001015186858151811061295b5761295b6152c3565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152c3565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152c3565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152c3565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154be565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152c3565b6020026020010151868581518110612c5a57612c5a6152c3565b60200260200101516040518463ffffffff1660e01b8152600401612c809392919061574b565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361576f565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d999083908590615788565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157a1565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157a1565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c82826157de565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615379565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152d9565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152c3565b6020026020010151858581518110613220576132206152c3565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615738565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f9392919061574b565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152c3565b90506020020160208101906134be91906149a7565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152c3565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615725565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f9392919061574b565b60006139776105f387615841565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157a1565b63ffffffff16613a1d9190615725565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab560608701604088016149a7565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615330565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615330565b9050811015613d23574360a16000613c0b60a08b018b615330565b85818110613c1b57613c1b6152c3565b9050602002016020810190613c3091906149a7565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157a1565b63ffffffff16613c6a9190615725565b1115613c885760405162461bcd60e51b8152600401610ab59061584d565b613d1b613c9860208901896149a7565b33613ca660a08b018b615330565b85818110613cb657613cb66152c3565b9050602002016020810190613ccb91906149a7565b613cd860c08c018c615330565b86818110613ce857613ce86152c3565b905060200201358a8a87818110613d0157613d016152c3565b9050602002016020810190613d1691906149a7565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615330565b9050811015614114574360a16000613d6c60a08c018c615330565b85818110613d7c57613d7c6152c3565b9050602002016020810190613d9191906149a7565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157a1565b63ffffffff16613dcb9190615725565b1115613de95760405162461bcd60e51b8152600401610ab59061584d565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615330565b83818110613e1b57613e1b6152c3565b9050602002016020810190613e3091906149a7565b6001600160a01b031603613f7f576000613e4d60208a018a6149a7565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615330565b87818110613e9e57613e9e6152c3565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1691906155dd565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615330565b88818110613f5c57613f5c6152c3565b9050602002016020810190613f7191906149a7565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152c3565b9050602002016020810190613fd691906149a7565b613fe360a08d018d615330565b86818110613ff357613ff36152c3565b905060200201602081019061400891906149a7565b61401560c08e018e615330565b87818110614025576140256152c3565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615330565b858181106140ce576140ce6152c3565b90506020020160208101906140e391906149a7565b6140f060c08d018d615330565b86818110614100576141006152c3565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061419290869086906004016158d5565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d3919061592c565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b1300906143809088908890879060040161574b565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615956565b036144f25750565b600181600481111561450657614506615956565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615956565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615956565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615956565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615725565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b6020808252825182820181905260009190848201906040850190845b818110156148ef578351835292840192918401916001016148d3565b50909695505050505050565b60006060828403121561490d57600080fd5b50919050565b60008083601f84011261492557600080fd5b5081356001600160401b0381111561493c57600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561496957600080fd5b61497385856148fb565b925060608401356001600160401b0381111561498e57600080fd5b61499a86828701614913565b9497909650939450505050565b6000602082840312156149b957600080fd5b81356149c481614837565b9392505050565b6000806000606084860312156149e057600080fd5b83356149eb81614837565b925060208401356149fb81614837565b929592945050506040919091013590565b600060208284031215614a1e57600080fd5b5035919050565b60008060008060408587031215614a3b57600080fd5b84356001600160401b0380821115614a5257600080fd5b614a5e888389016147b2565b90965094506020870135915080821115614a7757600080fd5b50614a84878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aac57600080fd5b8835614ab781614837565b97506020890135614ac781614837565b9650604089013595506060890135945060808901356001600160401b0380821115614af157600080fd5b614afd8c838d016147b2565b909650945060a08b0135915080821115614b1657600080fd5b50614b238b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b5357600080fd5b88356001600160401b0380821115614b6a57600080fd5b614b768c838d016147b2565b909a50985060208b0135915080821115614b8f57600080fd5b614b9b8c838d016147b2565b909850965060408b0135915080821115614bb457600080fd5b614bc08c838d016147b2565b909650945060608b0135915080821115614b1657600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1157614c11614bd9565b60405290565b604080519081016001600160401b0381118282101715614c1157614c11614bd9565b604051601f8201601f191681016001600160401b0381118282101715614c6157614c61614bd9565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c69565b60006001600160401b03821115614c9f57614c9f614bd9565b5060051b60200190565b600082601f830112614cba57600080fd5b81356020614ccf614cca83614c86565b614c39565b8083825260208201915060208460051b870101935086841115614cf157600080fd5b602086015b84811015614d16578035614d0981614837565b8352918301918301614cf6565b509695505050505050565b600082601f830112614d3257600080fd5b81356020614d42614cca83614c86565b8083825260208201915060208460051b870101935086841115614d6457600080fd5b602086015b84811015614d165780358352918301918301614d69565b600060e08284031215614d9257600080fd5b614d9a614bef565b9050614da58261484c565b8152614db36020830161484c565b6020820152614dc46040830161484c565b604082015260608201356060820152614ddf60808301614c7b565b608082015260a08201356001600160401b0380821115614dfe57600080fd5b614e0a85838601614ca9565b60a084015260c0840135915080821115614e2357600080fd5b50614e3084828501614d21565b60c08301525092915050565b600060208284031215614e4e57600080fd5b81356001600160401b03811115614e6457600080fd5b614e7084828501614d80565b949350505050565b600060208284031215614e8a57600080fd5b813560ff811681146149c457600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ec157600080fd5b85356001600160401b0380821115614ed857600080fd5b9087019060e0828a031215614eec57600080fd5b90955060208701359080821115614f0257600080fd5b50614f0f888289016147b2565b909550935050604086013591506060860135614f2a81614e9b565b809150509295509295909350565b60008060408385031215614f4b57600080fd5b8235614f5681614837565b91506020830135614f6681614837565b809150509250929050565b600060408284031215614f8357600080fd5b614f8b614c17565b905081356001600160401b0380821115614fa457600080fd5b818401915084601f830112614fb857600080fd5b8135602082821115614fcc57614fcc614bd9565b614fde601f8301601f19168201614c39565b92508183528681838601011115614ff457600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a0868803121561503157600080fd5b853561503c81614837565b9450602086013561504c81614837565b935060408601356001600160401b038082111561506857600080fd5b61507489838a01614f71565b9450606088013591508082111561508a57600080fd5b5061509788828901614f71565b95989497509295608001359392505050565b600080604083850312156150bc57600080fd5b82356150c781614837565b915060208301356001600160401b038111156150e257600080fd5b6150ee85828601614ca9565b9150509250929050565b60008151808452602080850194506020840160005b838110156151295781518752958201959082019060010161510d565b509495945050505050565b6020815260006149c460208301846150f8565b6000806020838503121561515a57600080fd5b82356001600160401b0381111561517057600080fd5b61482b85828601614913565b6000806040838503121561518f57600080fd5b823561519a81614837565b946020939093013593505050565b600080600080608085870312156151be57600080fd5b84356151c981614837565b93506020850135925060408501356151e081614837565b9396929550929360600135925050565b60008151808452602080850194506020840160005b838110156151295781516001600160a01b031687529582019590820190600101615205565b60408152600061523d60408301856151f0565b828103602084015261120f81856150f8565b60008060006060848603121561526457600080fd5b833561526f81614837565b925060208401356001600160401b0381111561528a57600080fd5b61529686828701614f71565b925050604084013590509250925092565b6000606082840312156152b957600080fd5b6149c483836148fb565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261532657600080fd5b9190910192915050565b6000808335601e1984360301811261534757600080fd5b8301803591506001600160401b0382111561536157600080fd5b6020019150600581901b36038213156144cf57600080fd5b60608101823561538881614837565b6001600160a01b0390811683526020840135906153a482614837565b16602083015260408301356153b881614c69565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561540c57600080fd5b81516149c481614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154d057600080fd5b81516149c481614e9b565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261532657600080fd5b60006020828403121561554b57600080fd5b81356149c481614e9b565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a08501526155b160e08501826151f0565b905060c083015184820360c086015261120f82826150f8565b6020815260006149c46020830184615556565b6000602082840312156155ef57600080fd5b5051919050565b600082601f83011261560757600080fd5b81516020615617614cca83614c86565b8083825260208201915060208460051b87010193508684111561563957600080fd5b602086015b84811015614d16578051835291830191830161563e565b6000806040838503121561566857600080fd5b82516001600160401b038082111561567f57600080fd5b818501915085601f83011261569357600080fd5b815160206156a3614cca83614c86565b82815260059290921b840181019181810190898411156156c257600080fd5b948201945b838610156156e95785516156da81614837565b825294820194908201906156c7565b9188015191965090935050508082111561570257600080fd5b506150ee858286016155f6565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261570f565b818103818111156109c2576109c261570f565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157815761578161570f565b5060010190565b828152604060208201526000614e706040830184615556565b6000602082840312156157b357600080fd5b81356149c481614c69565b80546001600160a01b0319166001600160a01b0392909216919091179055565b81356157e981614837565b6157f381836157be565b5060018101602083013561580681614837565b61581081836157be565b50604083013561581f81614c69565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d80565b6020808252606e9082015260008051602061596d83398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b8281526000602060406020840152835180604085015260005b8181101561590a578581018301518582016060015282016158ee565b506000606082860101526060601f19601f830116850101925050509392505050565b60006020828403121561593e57600080fd5b81516001600160e01b0319811681146149c457600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a264697066735822122077e25f9c65861d9bf718b537427551bab355394bebd5f95b15c4df6972929f1b64736f6c63430008180033","gas_used":4625204,"gas_limit":6136719,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614954565b610de8565b005b6103da6103ea3660046149a7565b610f2d565b6103da6103fd3660046149cb565b610fe0565b6103da610410366004614a0c565b611097565b6103da610423366004614a25565b6111d6565b61035a6104363660046149a7565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149cb565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a90565b611218565b6103da6104bc3660046149cb565b61135c565b61035a6104cf3660046149a7565b609b6020526000908152604090205481565b6103da6104ef366004614b37565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b6105413660046149a7565b6001600160a01b039081166000908152609960205260409020600101541690565b6105756105703660046149a7565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e3c565b611626565b610575610606366004614e78565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614ea9565b611656565b6103da610644366004614a0c565b6116ef565b61051b6106573660046149a7565b609a602052600090815260409020546001600160a01b031681565b6105756106803660046149a7565b611700565b6103da611721565b61035a61069b366004614f38565b609860209081526000928352604080842090915290825290205481565b6103da6106c6366004615019565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150a9565b611961565b6040516103649190615134565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da610738366004615147565b611a33565b61035a61074b3660046149a7565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a0c565b609e6020526000908152604090205460ff1681565b6105756107b536600461517c565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec3660046149a7565b60a16020526000908152604090205481565b61086e61080c3660046149a7565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151a8565b611b05565b61035a62034bc081565b6108d46108cf3660046149a7565b611bbe565b60405161036492919061522a565b6103ba6108f03660046149a7565b611f75565b6103da61090336600461524f565b61242e565b6103da6109163660046152a7565b61254b565b6103da6109293660046149a7565b6125dc565b61035a612652565b6103da610944366004614a0c565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152c3565b905060200201602081019061098691906149a7565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152d9565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614bd9565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152c3565b9050602002810190610b4e9190615310565b610b5c906020810190615330565b9050878783818110610b7057610b706152c3565b9050602002810190610b829190615310565b610b8c9080615330565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152c3565b9050602002810190610c269190615310565b610c379060608101906040016149a7565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152c3565b9050602002810190610cdc9190615310565b610ced9060608101906040016149a7565b8a8a86818110610cff57610cff6152c3565b9050602002810190610d119190615310565b610d1b9080615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152c3565b9050602002810190610d739190615310565b610d81906020810190615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152c3565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615379565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153cb565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa491906153fa565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615417565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab590615461565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154be565b61111f5760405162461bcd60e51b8152600401610ab5906154db565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab590615461565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152c3565b90506020028101906114bd9190615523565b8989848181106114cf576114cf6152c3565b90506020028101906114e19190615330565b8989868181106114f3576114f36152c3565b9050602002013588888781811061150c5761150c6152c3565b90506020020160208101906115219190615539565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154be565b6115e75760405162461bcd60e51b8152600401610ab5906154db565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155ca565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614bd9565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152c3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152c3565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153cb565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5291906155dd565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea9190810190615655565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152c3565b602002602001018181525050611f68565b8351611dc7906001615725565b6001600160401b03811115611dde57611dde614bd9565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614bd9565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152c3565b6020026020010151838281518110611e8757611e876152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152c3565b6020026020010151828281518110611ed357611ed36152c3565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615738565b81518110611f1b57611f1b6152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615738565b81518110611f5b57611f5b6152c3565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152d9565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614bd9565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152c3565b602002602001015182600081518110612396576123966152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152c3565b6020026020010151816000815181106123e3576123e36152c3565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152c3565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270691906153fa565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615417565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152c3565b602002602001015186858151811061295b5761295b6152c3565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152c3565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152c3565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152c3565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154be565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152c3565b6020026020010151868581518110612c5a57612c5a6152c3565b60200260200101516040518463ffffffff1660e01b8152600401612c809392919061574b565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361576f565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d999083908590615788565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157a1565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157a1565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c82826157de565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615379565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152d9565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152c3565b6020026020010151858581518110613220576132206152c3565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615738565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f9392919061574b565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152c3565b90506020020160208101906134be91906149a7565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152c3565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615725565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f9392919061574b565b60006139776105f387615841565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157a1565b63ffffffff16613a1d9190615725565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab560608701604088016149a7565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615330565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615330565b9050811015613d23574360a16000613c0b60a08b018b615330565b85818110613c1b57613c1b6152c3565b9050602002016020810190613c3091906149a7565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157a1565b63ffffffff16613c6a9190615725565b1115613c885760405162461bcd60e51b8152600401610ab59061584d565b613d1b613c9860208901896149a7565b33613ca660a08b018b615330565b85818110613cb657613cb66152c3565b9050602002016020810190613ccb91906149a7565b613cd860c08c018c615330565b86818110613ce857613ce86152c3565b905060200201358a8a87818110613d0157613d016152c3565b9050602002016020810190613d1691906149a7565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615330565b9050811015614114574360a16000613d6c60a08c018c615330565b85818110613d7c57613d7c6152c3565b9050602002016020810190613d9191906149a7565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157a1565b63ffffffff16613dcb9190615725565b1115613de95760405162461bcd60e51b8152600401610ab59061584d565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615330565b83818110613e1b57613e1b6152c3565b9050602002016020810190613e3091906149a7565b6001600160a01b031603613f7f576000613e4d60208a018a6149a7565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615330565b87818110613e9e57613e9e6152c3565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1691906155dd565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615330565b88818110613f5c57613f5c6152c3565b9050602002016020810190613f7191906149a7565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152c3565b9050602002016020810190613fd691906149a7565b613fe360a08d018d615330565b86818110613ff357613ff36152c3565b905060200201602081019061400891906149a7565b61401560c08e018e615330565b87818110614025576140256152c3565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615330565b858181106140ce576140ce6152c3565b90506020020160208101906140e391906149a7565b6140f060c08d018d615330565b86818110614100576141006152c3565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061419290869086906004016158d5565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d3919061592c565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b1300906143809088908890879060040161574b565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615956565b036144f25750565b600181600481111561450657614506615956565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615956565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615956565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615956565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615725565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b6020808252825182820181905260009190848201906040850190845b818110156148ef578351835292840192918401916001016148d3565b50909695505050505050565b60006060828403121561490d57600080fd5b50919050565b60008083601f84011261492557600080fd5b5081356001600160401b0381111561493c57600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561496957600080fd5b61497385856148fb565b925060608401356001600160401b0381111561498e57600080fd5b61499a86828701614913565b9497909650939450505050565b6000602082840312156149b957600080fd5b81356149c481614837565b9392505050565b6000806000606084860312156149e057600080fd5b83356149eb81614837565b925060208401356149fb81614837565b929592945050506040919091013590565b600060208284031215614a1e57600080fd5b5035919050565b60008060008060408587031215614a3b57600080fd5b84356001600160401b0380821115614a5257600080fd5b614a5e888389016147b2565b90965094506020870135915080821115614a7757600080fd5b50614a84878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aac57600080fd5b8835614ab781614837565b97506020890135614ac781614837565b9650604089013595506060890135945060808901356001600160401b0380821115614af157600080fd5b614afd8c838d016147b2565b909650945060a08b0135915080821115614b1657600080fd5b50614b238b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b5357600080fd5b88356001600160401b0380821115614b6a57600080fd5b614b768c838d016147b2565b909a50985060208b0135915080821115614b8f57600080fd5b614b9b8c838d016147b2565b909850965060408b0135915080821115614bb457600080fd5b614bc08c838d016147b2565b909650945060608b0135915080821115614b1657600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1157614c11614bd9565b60405290565b604080519081016001600160401b0381118282101715614c1157614c11614bd9565b604051601f8201601f191681016001600160401b0381118282101715614c6157614c61614bd9565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c69565b60006001600160401b03821115614c9f57614c9f614bd9565b5060051b60200190565b600082601f830112614cba57600080fd5b81356020614ccf614cca83614c86565b614c39565b8083825260208201915060208460051b870101935086841115614cf157600080fd5b602086015b84811015614d16578035614d0981614837565b8352918301918301614cf6565b509695505050505050565b600082601f830112614d3257600080fd5b81356020614d42614cca83614c86565b8083825260208201915060208460051b870101935086841115614d6457600080fd5b602086015b84811015614d165780358352918301918301614d69565b600060e08284031215614d9257600080fd5b614d9a614bef565b9050614da58261484c565b8152614db36020830161484c565b6020820152614dc46040830161484c565b604082015260608201356060820152614ddf60808301614c7b565b608082015260a08201356001600160401b0380821115614dfe57600080fd5b614e0a85838601614ca9565b60a084015260c0840135915080821115614e2357600080fd5b50614e3084828501614d21565b60c08301525092915050565b600060208284031215614e4e57600080fd5b81356001600160401b03811115614e6457600080fd5b614e7084828501614d80565b949350505050565b600060208284031215614e8a57600080fd5b813560ff811681146149c457600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ec157600080fd5b85356001600160401b0380821115614ed857600080fd5b9087019060e0828a031215614eec57600080fd5b90955060208701359080821115614f0257600080fd5b50614f0f888289016147b2565b909550935050604086013591506060860135614f2a81614e9b565b809150509295509295909350565b60008060408385031215614f4b57600080fd5b8235614f5681614837565b91506020830135614f6681614837565b809150509250929050565b600060408284031215614f8357600080fd5b614f8b614c17565b905081356001600160401b0380821115614fa457600080fd5b818401915084601f830112614fb857600080fd5b8135602082821115614fcc57614fcc614bd9565b614fde601f8301601f19168201614c39565b92508183528681838601011115614ff457600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a0868803121561503157600080fd5b853561503c81614837565b9450602086013561504c81614837565b935060408601356001600160401b038082111561506857600080fd5b61507489838a01614f71565b9450606088013591508082111561508a57600080fd5b5061509788828901614f71565b95989497509295608001359392505050565b600080604083850312156150bc57600080fd5b82356150c781614837565b915060208301356001600160401b038111156150e257600080fd5b6150ee85828601614ca9565b9150509250929050565b60008151808452602080850194506020840160005b838110156151295781518752958201959082019060010161510d565b509495945050505050565b6020815260006149c460208301846150f8565b6000806020838503121561515a57600080fd5b82356001600160401b0381111561517057600080fd5b61482b85828601614913565b6000806040838503121561518f57600080fd5b823561519a81614837565b946020939093013593505050565b600080600080608085870312156151be57600080fd5b84356151c981614837565b93506020850135925060408501356151e081614837565b9396929550929360600135925050565b60008151808452602080850194506020840160005b838110156151295781516001600160a01b031687529582019590820190600101615205565b60408152600061523d60408301856151f0565b828103602084015261120f81856150f8565b60008060006060848603121561526457600080fd5b833561526f81614837565b925060208401356001600160401b0381111561528a57600080fd5b61529686828701614f71565b925050604084013590509250925092565b6000606082840312156152b957600080fd5b6149c483836148fb565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261532657600080fd5b9190910192915050565b6000808335601e1984360301811261534757600080fd5b8301803591506001600160401b0382111561536157600080fd5b6020019150600581901b36038213156144cf57600080fd5b60608101823561538881614837565b6001600160a01b0390811683526020840135906153a482614837565b16602083015260408301356153b881614c69565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561540c57600080fd5b81516149c481614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154d057600080fd5b81516149c481614e9b565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261532657600080fd5b60006020828403121561554b57600080fd5b81356149c481614e9b565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a08501526155b160e08501826151f0565b905060c083015184820360c086015261120f82826150f8565b6020815260006149c46020830184615556565b6000602082840312156155ef57600080fd5b5051919050565b600082601f83011261560757600080fd5b81516020615617614cca83614c86565b8083825260208201915060208460051b87010193508684111561563957600080fd5b602086015b84811015614d16578051835291830191830161563e565b6000806040838503121561566857600080fd5b82516001600160401b038082111561567f57600080fd5b818501915085601f83011261569357600080fd5b815160206156a3614cca83614c86565b82815260059290921b840181019181810190898411156156c257600080fd5b948201945b838610156156e95785516156da81614837565b825294820194908201906156c7565b9188015191965090935050508082111561570257600080fd5b506150ee858286016155f6565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261570f565b818103818111156109c2576109c261570f565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157815761578161570f565b5060010190565b828152604060208201526000614e706040830184615556565b6000602082840312156157b357600080fd5b81356149c481614c69565b80546001600160a01b0319166001600160a01b0392909216919091179055565b81356157e981614837565b6157f381836157be565b5060018101602083013561580681614837565b61581081836157be565b50604083013561581f81614c69565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d80565b6020808252606e9082015260008051602061596d83398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b8281526000602060406020840152835180604085015260005b8181101561590a578581018301518582016060015282016158ee565b506000606082860101526060601f19601f830116850101925050509392505050565b60006020828403121561593e57600080fd5b81516001600160e01b0319811681146149c457600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a264697066735822122077e25f9c65861d9bf718b537427551bab355394bebd5f95b15c4df6972929f1b64736f6c63430008180033","nonce":12,"gas_used":5044790},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4cfa36","logs":[{"address":"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000000000000000400000000000"},"block_hash":"0xe1f6cd22f9375fef53501446ba8ccbad8aa1109ada934708254fd611c48e641c","block_number":7},{"info":{"transaction_hash":"0xf1a5f1bb3c7c6e852bf93d19d49759d4f1fc89d9550b807365b50b1d92eca9a8","transaction_index":3,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":5,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1b6f7a","logs":[{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000240000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000001000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x4e339f47e5c414499741f7c79245654e069b212d8954eb2f72386530919f3cad","block_number":3},{"info":{"transaction_hash":"0x3da35e0d84e5fe1be7f74d2888bf3c992f85e98792e5ac0b47f43e8cc504f7b0","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x9a676e781a523b5d0c0e43731313a708cb607508","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9a676e781a523b5d0c0e43731313a708cb607508","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60c06040523480156200001157600080fd5b5060405162001f6438038062001f64833981016040819052620000349162000118565b6001600160a01b0381166080526200004b62000056565b504660a0526200014a565b600054610100900460ff1615620000c35760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000116576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012b57600080fd5b81516001600160a01b03811681146200014357600080fd5b9392505050565b60805160a051611ded620001776000396000610ea501526000818161032401526109810152611ded6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b3d565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b83565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000000000000000000000000000000000000000000081565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611bf5565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c12565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c5c565b6104cb5760405162461bcd60e51b815260040161042e90611c7e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c5c565b6107345760405162461bcd60e51b815260040161042e90611c7e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611d988339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c5c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cc6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f00000000000000000000000000000000000000000000000000000000000000004603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611bf5565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c12565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611cf5565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d4c565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d76565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b915060208381013567ffffffffffffffff80821115611a9257600080fd5b9085019060608288031215611aa657600080fd5b611aae6119fc565b823582811115611abd57600080fd5b8301601f81018913611ace57600080fd5b803583811115611ae057611ae06119e6565b611af2601f8201601f19168701611a25565b93508084528986828401011115611b0857600080fd5b808683018786013760008682860101525050818152838301358482015260408301356040820152809450505050509250929050565b60008060008060808587031215611b5357600080fd5b8435611b5e8161188d565b93506020850135611b6e8161188d565b93969395505050506040820135916060013590565b60008060208385031215611b9657600080fd5b823567ffffffffffffffff80821115611bae57600080fd5b818501915085601f830112611bc257600080fd5b813581811115611bd157600080fd5b866020828501011115611be357600080fd5b60209290920196919550909350505050565b600060208284031215611c0757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c6e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b8281526000602060406020840152835180604085015260005b81811015611d2a57858101830151858201606001528201611d0e565b506000606082860101526060601f19601f830116850101925050509392505050565b600060208284031215611d5e57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a264697066735822122016d51116de2d4e6ebc6b9dfa2dada06d1f6e51f6dc472774de5d172aa09dda6d64736f6c63430008180033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b3d565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b83565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611bf5565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c12565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c5c565b6104cb5760405162461bcd60e51b815260040161042e90611c7e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c5c565b6107345760405162461bcd60e51b815260040161042e90611c7e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611d988339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c5c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cc6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611bf5565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c12565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611cf5565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d4c565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d76565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b915060208381013567ffffffffffffffff80821115611a9257600080fd5b9085019060608288031215611aa657600080fd5b611aae6119fc565b823582811115611abd57600080fd5b8301601f81018913611ace57600080fd5b803583811115611ae057611ae06119e6565b611af2601f8201601f19168701611a25565b93508084528986828401011115611b0857600080fd5b808683018786013760008682860101525050818152838301358482015260408301356040820152809450505050509250929050565b60008060008060808587031215611b5357600080fd5b8435611b5e8161188d565b93506020850135611b6e8161188d565b93969395505050506040820135916060013590565b60008060208385031215611b9657600080fd5b823567ffffffffffffffff80821115611bae57600080fd5b818501915085601f830112611bc257600080fd5b813581811115611bd157600080fd5b866020828501011115611be357600080fd5b60209290920196919550909350505050565b600060208284031215611c0757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c6e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b8281526000602060406020840152835180604085015260005b81811015611d2a57858101830151858201606001528201611d0e565b506000606082860101526060601f19601f830116850101925050509392505050565b600060208284031215611d5e57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a264697066735822122016d51116de2d4e6ebc6b9dfa2dada06d1f6e51f6dc472774de5d172aa09dda6d64736f6c63430008180033","gas_used":1557551,"gas_limit":2077867,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b3d565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b83565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611bf5565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c12565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c5c565b6104cb5760405162461bcd60e51b815260040161042e90611c7e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c5c565b6107345760405162461bcd60e51b815260040161042e90611c7e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611d988339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c5c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cc6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611bf5565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c12565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611cf5565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d4c565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d76565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b915060208381013567ffffffffffffffff80821115611a9257600080fd5b9085019060608288031215611aa657600080fd5b611aae6119fc565b823582811115611abd57600080fd5b8301601f81018913611ace57600080fd5b803583811115611ae057611ae06119e6565b611af2601f8201601f19168701611a25565b93508084528986828401011115611b0857600080fd5b808683018786013760008682860101525050818152838301358482015260408301356040820152809450505050509250929050565b60008060008060808587031215611b5357600080fd5b8435611b5e8161188d565b93506020850135611b6e8161188d565b93969395505050506040820135916060013590565b60008060208385031215611b9657600080fd5b823567ffffffffffffffff80821115611bae57600080fd5b818501915085601f830112611bc257600080fd5b813581811115611bd157600080fd5b866020828501011115611be357600080fd5b60209290920196919550909350505050565b600060208284031215611c0757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c6e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b8281526000602060406020840152835180604085015260005b81811015611d2a57858101830151858201606001528201611d0e565b506000606082860101526060601f19601f830116850101925050509392505050565b600060208284031215611d5e57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a264697066735822122016d51116de2d4e6ebc6b9dfa2dada06d1f6e51f6dc472774de5d172aa09dda6d64736f6c63430008180033","nonce":14,"gas_used":1736581},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x45944a","logs":[{"address":"0x9a676e781a523b5d0c0e43731313a708cb607508","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000800400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xd4b95e4ec6f57d6d419c266057e9a588e0aa952c244f102815e22672412725f4","block_number":8},{"info":{"transaction_hash":"0x347311dd2eae16c262b7d5948ddae2c69deee29611e6e968d4aa42329bdb45bc","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":4371,"gas_limit":16304,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":53,"gas_used":25803},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1a572b","logs":[{"address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000008000000000"},"block_hash":"0x72ff342cc0acfb86cbd4513d76ab90297e2c56d272e3165a5e381274ca299052","block_number":10},{"info":{"transaction_hash":"0xb607e1fb885ff8088878a3701005807b6ed2e513a5dc7a46832337ffad520f52","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31800000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":118592,"gas_limit":172672,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef28600000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":112208,"gas_limit":163737,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","address":"0x68b1d87f95878fe05b998f19b66f4baba5de1aed","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xeb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a","output":"0x","gas_used":99229,"gas_limit":148619,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":25,"gas_used":141852},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x22a1c","logs":[{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed"],"data":"0x"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800001004000000000000000000000000400000000100000000000000000000000000000000000080004000000000000000002000000000000000000000008400000000000000000000000000000000000000000020400000200000000000040000040000002008000001000000000020000000000000000001000000000000000000000000000000020000000000400000"},"block_hash":"0x4d32275554dd98a99e2baab8bcef04f67cb68824f3545606eefafcd92a5ab084","block_number":15},{"info":{"transaction_hash":"0x161f78fddd9b65099690d01a50167cc1be40231289bc22f8839d75e68c113d89","transaction_index":5,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":7,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x2cebb0","logs":[{"address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000010000000010000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x4e339f47e5c414499741f7c79245654e069b212d8954eb2f72386530919f3cad","block_number":3},{"info":{"transaction_hash":"0x761d8cd21ff98b87e7d01571b73e98b14a6c22bfcf8516703399d7dec0e9ad51","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":4,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x12b15f","logs":[{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000001000000000100000000000000"},"block_hash":"0x4e339f47e5c414499741f7c79245654e069b212d8954eb2f72386530919f3cad","block_number":3},{"info":{"transaction_hash":"0xee9e2b75dd907e5bc685f65bbb929ae6b4f01a2cf9c934a8c951ee1597892033","transaction_index":4,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x0165878a594ca255338adfa4d48449f69242eb8f","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x0165878a594ca255338adfa4d48449f69242eb8f","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":6,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x242d95","logs":[{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000001000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000040000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x4e339f47e5c414499741f7c79245654e069b212d8954eb2f72386530919f3cad","block_number":3},{"info":{"transaction_hash":"0xea8d6e33dc169f638f10dce03cffccc4d4e8594d0211415af99ea7330abe0032","transaction_index":3,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x99a88ec4000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e0000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf","output":"0x","gas_used":17021,"gas_limit":31821,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0x998abeb3e57409262ae5b751f60747921b33613e","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x3659cfe60000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf","output":"0x","gas_used":11547,"gas_limit":25979,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":45,"gas_used":38821},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4c5829","logs":[{"address":"0x998abeb3e57409262ae5b751f60747921b33613e","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf"],"data":"0x"}],"logsBloom":"0x00002000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000002400000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xc3a6dcac3748c6c5456194f4d0559acb3fce93bdb951a1aaf5e92d91230fcb99","block_number":6},{"info":{"transaction_hash":"0x0407695da91c821753dcf7e68b5284a95c603e466b110cce53db7254dd1f1278","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":4364,"gas_limit":14198,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":32,"gas_used":25796},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x64c4","logs":[{"address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x02089c70710a7a686754a8673643120dde00518f003fc3b59948c90ed81cb643","block_number":21},{"info":{"transaction_hash":"0x9bd6c2f1599b5920937e13a0c12fe12f3068761b0d4a90c433151d72a33fde39","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x68b1d87f95878fe05b998f19b66f4baba5de1aed","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x68b1d87f95878fe05b998f19b66f4baba5de1aed","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a06040523480156200001157600080fd5b5060405162001ec538038062001ec58339810160408190526200003491620001a8565b6001600160a01b038116620000cb5760405162461bcd60e51b815260206004820152604c60248201527f44656c617965645769746864726177616c526f757465722e636f6e737472756360448201527f746f723a205f656967656e506f644d616e616765722063616e6e6f742062652060648201526b7a65726f206164647265737360a01b608482015260a4015b60405180910390fd5b6001600160a01b038116608052620000e2620000e9565b50620001da565b600054610100900460ff1615620001535760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401620000c2565b60005460ff9081161015620001a6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b600060208284031215620001bb57600080fd5b81516001600160a01b0381168114620001d357600080fd5b9392505050565b608051611cc8620001fd600039600081816101fa0152610be00152611cc86000f3fe60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f0565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a13565b610aba565b34801561032357600080fd5b50610337610332366004611a13565b610b3d565b6040516101bf9190611a3f565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4d565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a13565b610f0e565b34801561043157600080fd5b50610170610440366004611a86565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acc565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b22565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b3f565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b89565b6105f65760405162461bcd60e51b815260040161055990611bab565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c09565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1c565b8154811061071d5761071d611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1c565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c45565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1c565b8154811061082757610827611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c2f565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c09565b905060008167ffffffffffffffff8111156108dd576108dd611c45565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1c565b8154811061096557610965611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c2f565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b89565b610a675760405162461bcd60e51b815260040161055990611bab565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c2f565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1c565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000000000000000000000000000000000000000000000169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b22565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5b565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c09565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5b565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5b565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b22565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b3f565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1c565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1c565b8154811061163357611633611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1c565b43101561168657506116a6565b805161169b906001600160e01b031686611c1c565b9450506001016115e2565b6116b08184611c1c565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1c565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000919060409081850190868401855b828110156119e3576119d3848351611985565b92840192908501906001016119c0565b5091979650505050505050565b600060208284031215611a0257600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2657600080fd5b8235611a3181611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6057600080fd5b8235611a6b81611933565b91506020830135611a7b81611933565b809150509250929050565b60008060008060808587031215611a9c57600080fd5b8435611aa781611933565b93506020850135611ab781611933565b93969395505050506040820135916060013590565b602080825282518282015282810151604080840181905281516060850181905260009392830191849160808701905b8084101561088657611b0e828651611985565b938501936001939093019290820190611afb565b600060208284031215611b3457600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9b57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf3565b80820180821115610b3757610b37611bf3565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122008c24927adbff47182d3eb1466e14dfabce75639c9bbc81de71096db25fc9c1c64736f6c634300081800330000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6","output":"0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f0565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a13565b610aba565b34801561032357600080fd5b50610337610332366004611a13565b610b3d565b6040516101bf9190611a3f565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4d565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a13565b610f0e565b34801561043157600080fd5b50610170610440366004611a86565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acc565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b22565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b3f565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b89565b6105f65760405162461bcd60e51b815260040161055990611bab565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c09565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1c565b8154811061071d5761071d611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1c565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c45565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1c565b8154811061082757610827611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c2f565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c09565b905060008167ffffffffffffffff8111156108dd576108dd611c45565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1c565b8154811061096557610965611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c2f565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b89565b610a675760405162461bcd60e51b815260040161055990611bab565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c2f565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1c565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b22565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5b565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c09565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5b565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5b565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b22565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b3f565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1c565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1c565b8154811061163357611633611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1c565b43101561168657506116a6565b805161169b906001600160e01b031686611c1c565b9450506001016115e2565b6116b08184611c1c565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1c565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000919060409081850190868401855b828110156119e3576119d3848351611985565b92840192908501906001016119c0565b5091979650505050505050565b600060208284031215611a0257600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2657600080fd5b8235611a3181611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6057600080fd5b8235611a6b81611933565b91506020830135611a7b81611933565b809150509250929050565b60008060008060808587031215611a9c57600080fd5b8435611aa781611933565b93506020850135611ab781611933565b93969395505050506040820135916060013590565b602080825282518282015282810151604080840181905281516060850181905260009392830191849160808701905b8084101561088657611b0e828651611985565b938501936001939093019290820190611afb565b600060208284031215611b3457600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9b57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf3565b80820180821115610b3757610b37611bf3565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122008c24927adbff47182d3eb1466e14dfabce75639c9bbc81de71096db25fc9c1c64736f6c63430008180033","gas_used":1498898,"gas_limit":2000944,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f0565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a13565b610aba565b34801561032357600080fd5b50610337610332366004611a13565b610b3d565b6040516101bf9190611a3f565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4d565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a13565b610f0e565b34801561043157600080fd5b50610170610440366004611a86565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acc565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b22565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b3f565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b89565b6105f65760405162461bcd60e51b815260040161055990611bab565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c09565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1c565b8154811061071d5761071d611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1c565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c45565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1c565b8154811061082757610827611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c2f565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c09565b905060008167ffffffffffffffff8111156108dd576108dd611c45565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1c565b8154811061096557610965611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c2f565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b89565b610a675760405162461bcd60e51b815260040161055990611bab565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c2f565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1c565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b22565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5b565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c09565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5b565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5b565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b22565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b3f565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1c565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1c565b8154811061163357611633611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1c565b43101561168657506116a6565b805161169b906001600160e01b031686611c1c565b9450506001016115e2565b6116b08184611c1c565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1c565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000919060409081850190868401855b828110156119e3576119d3848351611985565b92840192908501906001016119c0565b5091979650505050505050565b600060208284031215611a0257600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2657600080fd5b8235611a3181611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6057600080fd5b8235611a6b81611933565b91506020830135611a7b81611933565b809150509250929050565b60008060008060808587031215611a9c57600080fd5b8435611aa781611933565b93506020850135611ab781611933565b93969395505050506040820135916060013590565b602080825282518282015282810151604080840181905281516060850181905260009392830191849160808701905b8084101561088657611b0e828651611985565b938501936001939093019290820190611afb565b600060208284031215611b3457600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9b57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf3565b80820180821115610b3757610b37611bf3565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122008c24927adbff47182d3eb1466e14dfabce75639c9bbc81de71096db25fc9c1c64736f6c63430008180033","nonce":18,"gas_used":1675638},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x455c56","logs":[{"address":"0x68b1d87f95878fe05b998f19b66f4baba5de1aed","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000008000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000"},"block_hash":"0x78ae1dc60d5a6304aa339e8aaf1ce85caa9087f90e81ead058aca2a258c890bd","block_number":11},{"info":{"transaction_hash":"0x9d7618bb7ef673579140052a4a7c85411d535c358070cafc44f12ba93b41d504","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6101206040523480156200001257600080fd5b50604051620034a9380380620034a983398101604081905262000035916200014b565b6001600160a01b0380861660805280851660a05280841660c05280831660e0528116610100526200006562000070565b5050505050620001cb565b600054610100900460ff1615620000dd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000130576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200014857600080fd5b50565b600080600080600060a086880312156200016457600080fd5b8551620001718162000132565b6020870151909550620001848162000132565b6040870151909450620001978162000132565b6060870151909350620001aa8162000132565b6080870151909250620001bd8162000132565b809150509295509295909350565b60805160a05160c05160e051610100516132686200024160003960008181610636015281816106e001528181610b0e015281816113ea0152818161187e015261196e01526000610542015260006102e601526000818161027a01528181611369015261203c0152600061041401526132686000f3fe6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125b8565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107265760405162461bcd60e51b815260040161071d90612609565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca008361267d565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126a7565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f3833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126cf565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126ec565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a309190612736565b610a4c5760405162461bcd60e51b815260040161071d90612758565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b4b5760405162461bcd60e51b815260040161071d90612609565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321383398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321383398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca008261267d565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a0565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127bc565b9250846001600160a01b03166000805160206131f383398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126a7565b90915550506040518381526001600160a01b038616906000805160206131f38339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c79190612736565b6110e35760405162461bcd60e51b815260040161071d90612758565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127f8565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128e561090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612862565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114275760405162461bcd60e51b815260040161071d90612609565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca008261267d565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b6020526040812054611545908390612877565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca008361289e565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126a7565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a0565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f3833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b2565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126cf565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126ec565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a0565b905061090b565b611e408383612877565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128cb565b9091555060408051610940810190915261090e8082526000916120a491839133916128e56020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612862565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff8082111561257457600080fd5b61258089838a016124fb565b9097509550602088013591508082111561259957600080fd5b506125a6888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125ce57600080fd5b84356125d9816123f6565b935060208501356125e9816123f6565b925060408501356125f9816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261268c5761268c612667565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126c7576126c7612691565b505092915050565b6000602082840312156126e157600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274857600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127b5576127b5612691565b5060000390565b8181038181111561090b5761090b612691565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061280c6060830187896127cf565b828103602084015261281f8186886127cf565b9150508260408301529695505050505050565b6000815160005b818110156128535760208185018101518683015201612839565b50600093019283525090919050565b60006123ee6128718386612832565b84612832565b818103600083128015838313168383128216171561289757612897612691565b5092915050565b6000826128ad576128ad612667565b500790565b6000602082840312156128c457600080fd5b5051919050565b6000600182016128dd576128dd612691565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220517f086e259f6d4f92497674fa8b87966eef35c1226b2e6369f2a0bdacf2836964736f6c634300081800330000000000000000000000004242424242424242424242424242424242424242000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125b8565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d90612609565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca008361267d565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126a7565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f3833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126cf565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126ec565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a309190612736565b610a4c5760405162461bcd60e51b815260040161071d90612758565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d90612609565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321383398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321383398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca008261267d565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a0565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127bc565b9250846001600160a01b03166000805160206131f383398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126a7565b90915550506040518381526001600160a01b038616906000805160206131f38339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c79190612736565b6110e35760405162461bcd60e51b815260040161071d90612758565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127f8565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128e561090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612862565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d90612609565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca008261267d565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b6020526040812054611545908390612877565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca008361289e565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126a7565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a0565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f3833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b2565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126cf565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126ec565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a0565b905061090b565b611e408383612877565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128cb565b9091555060408051610940810190915261090e8082526000916120a491839133916128e56020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612862565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff8082111561257457600080fd5b61258089838a016124fb565b9097509550602088013591508082111561259957600080fd5b506125a6888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125ce57600080fd5b84356125d9816123f6565b935060208501356125e9816123f6565b925060408501356125f9816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261268c5761268c612667565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126c7576126c7612691565b505092915050565b6000602082840312156126e157600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274857600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127b5576127b5612691565b5060000390565b8181038181111561090b5761090b612691565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061280c6060830187896127cf565b828103602084015261281f8186886127cf565b9150508260408301529695505050505050565b6000815160005b818110156128535760208185018101518683015201612839565b50600093019283525090919050565b60006123ee6128718386612832565b84612832565b818103600083128015838313168383128216171561289757612897612691565b5092915050565b6000826128ad576128ad612667565b500790565b6000602082840312156128c457600080fd5b5051919050565b6000600182016128dd576128dd612691565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220517f086e259f6d4f92497674fa8b87966eef35c1226b2e6369f2a0bdacf2836964736f6c63430008180033","gas_used":2607978,"gas_limit":3467863,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125b8565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d90612609565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca008361267d565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126a7565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f3833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126cf565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126ec565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a309190612736565b610a4c5760405162461bcd60e51b815260040161071d90612758565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d90612609565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321383398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321383398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca008261267d565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a0565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127bc565b9250846001600160a01b03166000805160206131f383398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126a7565b90915550506040518381526001600160a01b038616906000805160206131f38339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c79190612736565b6110e35760405162461bcd60e51b815260040161071d90612758565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127f8565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128e561090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612862565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d90612609565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca008261267d565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b6020526040812054611545908390612877565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca008361289e565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126a7565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a0565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f3833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b2565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126cf565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126ec565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a0565b905061090b565b611e408383612877565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128cb565b9091555060408051610940810190915261090e8082526000916120a491839133916128e56020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612862565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff8082111561257457600080fd5b61258089838a016124fb565b9097509550602088013591508082111561259957600080fd5b506125a6888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125ce57600080fd5b84356125d9816123f6565b935060208501356125e9816123f6565b925060408501356125f9816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261268c5761268c612667565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126c7576126c7612691565b505092915050565b6000602082840312156126e157600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274857600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127b5576127b5612691565b5060000390565b8181038181111561090b5761090b612691565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061280c6060830187896127cf565b828103602084015261281f8186886127cf565b9150508260408301529695505050505050565b6000815160005b818110156128535760208185018101518683015201612839565b50600093019283525090919050565b60006123ee6128718386612832565b84612832565b818103600083128015838313168383128216171561289757612897612691565b5092915050565b6000826128ad576128ad612667565b500790565b6000602082840312156128c457600080fd5b5051919050565b6000600182016128dd576128dd612691565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220517f086e259f6d4f92497674fa8b87966eef35c1226b2e6369f2a0bdacf2836964736f6c63430008180033","nonce":17,"gas_used":2869984},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x2bcae0","logs":[{"address":"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000001000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x78ae1dc60d5a6304aa339e8aaf1ce85caa9087f90e81ead058aca2a258c890bd","block_number":11},{"info":{"transaction_hash":"0xcb39bb5111342c9b6c2f3bc3007f67a86aa7cbd10b6ab9031dd81ff5a35d1026","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":118727,"gas_limit":172909,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0xc5a5c42992decbae36851359345fe25997f5c42d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":112343,"gas_limit":163971,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xc5a5c42992decbae36851359345fe25997f5c42d","address":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","output":"0x","gas_used":99364,"gas_limit":148850,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xf97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":29,"gas_used":142119},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xae942","logs":[{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f"],"data":"0x"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xf97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400004000000000000000000000000000400000000000000000000000000000000000000000100100004000000000000000000000000000000000400000002000000000000000000000000000000040000000000000000000000000004800000000004000000000000000000000000000000000300000002000040000000000400000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000040020480000000000000000040000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000400000"},"block_hash":"0x5dae897ded4889dc65ca7023d8497e57d010b51b7abde53c24f26b3485eacd81","block_number":18},{"info":{"transaction_hash":"0x6ea78c3414677766a62f4c541cfb745fdfe0841a3497ea85a3e4ce886192fa5a","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x99a88ec400000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377800000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf","output":"0x","gas_used":17021,"gas_limit":31821,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x3659cfe600000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf","output":"0x","gas_used":11547,"gas_limit":25979,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":43,"gas_used":38821},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x3058f4","logs":[{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000020000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020200000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000"},"block_hash":"0xc3a6dcac3748c6c5456194f4d0559acb3fce93bdb951a1aaf5e92d91230fcb99","block_number":6},{"info":{"transaction_hash":"0x5c2ef0a0614d6d04bf3c8181b9130589f20547110fabe10c738ae977ce457f93","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xc5a5c42992decbae36851359345fe25997f5c42d","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xc5a5c42992decbae36851359345fe25997f5c42d","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":28,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8be1b","logs":[{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400004000000000000000000000000000000000000000000000400000000000000400000000000000004000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020080000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x5dae897ded4889dc65ca7023d8497e57d010b51b7abde53c24f26b3485eacd81","block_number":18},{"info":{"transaction_hash":"0x5c7a4ba4a102cd96d6960e6552a8521370dc6e81b59af7385b7c4e27edd119c5","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":3,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x9f344","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000080000400000000000000000000000000001000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000008000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x4e339f47e5c414499741f7c79245654e069b212d8954eb2f72386530919f3cad","block_number":3},{"info":{"transaction_hash":"0x788f78c4b8ffe070842988b7fdc9a4812331fe7b4e3c432cbd974fb15f018dbe","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60806040526040516104da3803806104da833981016040819052610022916102d1565b61002e82826000610035565b50506103f4565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104b360279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6101e85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610136565b600080856001600160a01b03168560405161020391906103a5565b600060405180830381855af49150503d806000811461023e576040519150601f19603f3d011682016040523d82523d6000602084013e610243565b606091505b50909250905061025482828661025e565b9695505050505050565b6060831561026d5750816100c6565b82511561027d5782518084602001fd5b8160405162461bcd60e51b815260040161013691906103c1565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102c85781810151838201526020016102b0565b50506000910152565b600080604083850312156102e457600080fd5b82516001600160a01b03811681146102fb57600080fd5b60208401519092506001600160401b0381111561031757600080fd5b8301601f8101851361032857600080fd5b80516001600160401b0381111561034157610341610297565b604051601f8201601f19908116603f011681016001600160401b038111828210171561036f5761036f610297565b60405281815282820160200187101561038757600080fd5b6103988260208301602086016102ad565b8093505050509250929050565b600082516103b78184602087016102ad565b9190910192915050565b60208152600082518060208401526103e08160408501602087016102ad565b601f01601f19169190910160400192915050565b60b1806104026000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212205dc7632c28b0e81a7d9842ec88e360ef8949d326f6f9e7e1a8eff8de6eb4842164736f6c634300081b0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba30000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008463acc14d0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e800000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc41817b5c5b0c3dcda70ccb43ba175fdcd7e586f9e0484422a2c6bba678fdf4a300000000000000000000000000000000000000000000000000000000","output":"0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212205dc7632c28b0e81a7d9842ec88e360ef8949d326f6f9e7e1a8eff8de6eb4842164736f6c634300081b0033","gas_used":180819,"gas_limit":257405,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","address":"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x63acc14d0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e800000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc41817b5c5b0c3dcda70ccb43ba175fdcd7e586f9e0484422a2c6bba678fdf4a3","output":"0x","gas_used":117170,"gas_limit":225833,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2}]}],"exit":"Return","out":"0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212205dc7632c28b0e81a7d9842ec88e360ef8949d326f6f9e7e1a8eff8de6eb4842164736f6c634300081b0033","nonce":56,"gas_used":255697},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x3e6d1","logs":[{"address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3"],"data":"0x"},{"address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955"],"data":"0x"},{"address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000800000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000002200001000000000400000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400002000000000000000000000000001000000000020000000200000000000040000040000002000000001000000000020000000000080000000000000000000000000000000000000000000000400000000"},"block_hash":"0x192ab934dd1655cf1ba727ced7297f576c334292346371327bbb9b7eec5802f2","block_number":13},{"info":{"transaction_hash":"0x1309bb9de7d6f8c0672f208661413e239f8fb42be97a17a4f7f96c0e6fe67a9b","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xb7278a61aa25c888815afc32ad3cc52ff24fe575","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xb7278a61aa25c888815afc32ad3cc52ff24fe575","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052348015600f57600080fd5b50611dcb8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114ac565b60405180910390f35b6100a361009e3660046114e8565b610245565b6040516100879190611653565b6100c36100be3660046116c4565b6106c5565b6040516100879190611713565b6100e36100de3660046117aa565b6107d2565b60405161008791906118ab565b6101036100fe366004611963565b610eea565b60405161008791906119c6565b61012361011e3660046119fe565b6110a8565b604051610087929190611a35565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a56565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a6c565b82828151811061022b5761022b611a56565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a85565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a85565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a85565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a56565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611aa2565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a56565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a56565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a85565b6001600160a01b031681526020018383815181106105b6576105b6611a56565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a56565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b37565b6001600160601b031681525085858151811061068257610682611a56565b6020026020010151828151811061069b5761069b611a56565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a56565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a85565b8282815181106107b2576107b2611a56565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a85565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b60565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611ba7565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c64565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611ba7565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a56565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a56565b905060200201358e88600001518681518110610a9257610a92611a56565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c8d565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a56565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a56565b905060200201358d8d8860ff16818110610c2d57610c2d611a56565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611cb6565b85606001518560ff1681518110610cc057610cc0611a56565b60200260200101518481518110610cd957610cd9611a56565b63ffffffff9092166020928302919091019091015282610cf881611ce9565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a56565b60200260200101518181518110610d8957610d89611a56565b6020026020010151828281518110610da357610da3611a56565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a56565b602002602001018190525050508080610df390611d02565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a85565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d21565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611ba7565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d4b565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611ba7565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a56565b602002602001015187868581518110610ff257610ff2611a56565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c8d565b6001600160c01b031682828151811061108b5761108b611a56565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a56565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d4b565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611ba7565b60008151811061117657611176611a56565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c8d565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a56565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611ce9565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d6a565b909216918061132981611d7d565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b915060208301356001600160401b038111156113f157600080fd5b8301601f8101851361140257600080fd5b803561141561141082611395565b611365565b8082825260208201915060208360051b85010192508783111561143757600080fd5b6020840193505b8284101561146257833561145181611337565b82526020938401939091019061143e565b809450505050509250929050565b600081518084526020840193506020830160005b828110156114a2578151865260209586019590910190600101611484565b5093949350505050565b6020815260006114bf6020830184611470565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114e3816114c6565b919050565b6000806000606084860312156114fd57600080fd5b833561150881611337565b925060208401356001600160401b0381111561152357600080fd5b8401601f8101861361153457600080fd5b80356001600160401b0381111561154d5761154d61134f565b611560601f8201601f1916602001611365565b81815287602083850101111561157557600080fd5b8160208401602083013760006020838301015280945050505061159a604085016114d8565b90509250925092565b600082825180855260208501945060208160051b8301016020850160005b8381101561164757848303601f190188528151805180855260209182019185019060005b8181101561162e57835180516001600160a01b03168452602080820151818601526040918201516001600160601b031691850191909152909301926060909201916001016115e5565b50506020998a01999094509290920191506001016115c1565b50909695505050505050565b6020815260006114bf60208301846115a3565b600082601f83011261167757600080fd5b813561168561141082611395565b8082825260208201915060208360051b8601019250858311156116a757600080fd5b602085015b8381101561109e5780358352602092830192016116ac565b600080604083850312156116d757600080fd5b82356116e281611337565b915060208301356001600160401b038111156116fd57600080fd5b61170985828601611666565b9150509250929050565b602080825282518282018190526000918401906040840190835b818110156117545783516001600160a01b031683526020938401939092019160010161172d565b509095945050505050565b60008083601f84011261177157600080fd5b5081356001600160401b0381111561178857600080fd5b6020830191508360208260051b85010111156117a357600080fd5b9250929050565b600080600080600080608087890312156117c357600080fd5b86356117ce81611337565b955060208701356117de816114c6565b945060408701356001600160401b038111156117f957600080fd5b8701601f8101891361180a57600080fd5b80356001600160401b0381111561182057600080fd5b89602082840101111561183257600080fd5b6020919091019450925060608701356001600160401b0381111561185557600080fd5b61186189828a0161175f565b979a9699509497509295939492505050565b600081518084526020840193506020830160005b828110156114a257815163ffffffff16865260209586019590910190600101611887565b6020815260008251608060208401526118c760a0840182611873565b90506020840151601f198483030160408501526118e48282611873565b9150506040840151601f198483030160608501526119028282611873565b6060860151858203601f190160808701528051808352919350602090810192508084019190600582901b85010160005b828110156106b957601f1986830301845261194e828651611873565b60209586019594909401939150600101611932565b60008060006060848603121561197857600080fd5b833561198381611337565b925060208401356001600160401b0381111561199e57600080fd5b6119aa86828701611666565b92505060408401356119bb816114c6565b809150509250925092565b602080825282518282018190526000918401906040840190835b818110156117545783518352602093840193909201916001016119e0565b600080600060608486031215611a1357600080fd5b8335611a1e81611337565b92506020840135915060408401356119bb816114c6565b828152604060208201526000611a4e60408301846115a3565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7e57600080fd5b5051919050565b600060208284031215611a9757600080fd5b81516114bf81611337565b600060208284031215611ab457600080fd5b81516001600160401b03811115611aca57600080fd5b8201601f81018413611adb57600080fd5b8051611ae961141082611395565b8082825260208201915060208360051b850101925086831115611b0b57600080fd5b6020840193505b82841015611b2d578351825260209384019390910190611b12565b9695505050505050565b600060208284031215611b4957600080fd5b81516001600160601b03811681146114bf57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b8d57600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215611bb957600080fd5b81516001600160401b03811115611bcf57600080fd5b8201601f81018413611be057600080fd5b8051611bee61141082611395565b8082825260208201915060208360051b850101925086831115611c1057600080fd5b6020840193505b82841015611b2d578351611c2a816114c6565b825260209384019390910190611c17565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c84604083018486611c3b565b95945050505050565b600060208284031215611c9f57600080fd5b81516001600160c01b03811681146114bf57600080fd5b600060208284031215611cc857600080fd5b81516114bf816114c6565b634e487b7160e01b600052601160045260246000fd5b600060018201611cfb57611cfb611cd3565b5060010190565b600060ff821660ff8103611d1857611d18611cd3565b60010192915050565b604081526000611d35604083018587611c3b565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a4e6040830184611470565b8181038181111561133157611331611cd3565b600061ffff821661ffff8103611d1857611d18611cd356fea264697066735822122033585ad22b02fc74fbd447d232f18fbc94c4d2d5f8667d94aaa1ee5226d7192a64736f6c634300081b0033","output":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114ac565b60405180910390f35b6100a361009e3660046114e8565b610245565b6040516100879190611653565b6100c36100be3660046116c4565b6106c5565b6040516100879190611713565b6100e36100de3660046117aa565b6107d2565b60405161008791906118ab565b6101036100fe366004611963565b610eea565b60405161008791906119c6565b61012361011e3660046119fe565b6110a8565b604051610087929190611a35565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a56565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a6c565b82828151811061022b5761022b611a56565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a85565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a85565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a85565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a56565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611aa2565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a56565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a56565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a85565b6001600160a01b031681526020018383815181106105b6576105b6611a56565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a56565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b37565b6001600160601b031681525085858151811061068257610682611a56565b6020026020010151828151811061069b5761069b611a56565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a56565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a85565b8282815181106107b2576107b2611a56565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a85565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b60565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611ba7565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c64565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611ba7565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a56565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a56565b905060200201358e88600001518681518110610a9257610a92611a56565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c8d565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a56565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a56565b905060200201358d8d8860ff16818110610c2d57610c2d611a56565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611cb6565b85606001518560ff1681518110610cc057610cc0611a56565b60200260200101518481518110610cd957610cd9611a56565b63ffffffff9092166020928302919091019091015282610cf881611ce9565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a56565b60200260200101518181518110610d8957610d89611a56565b6020026020010151828281518110610da357610da3611a56565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a56565b602002602001018190525050508080610df390611d02565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a85565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d21565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611ba7565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d4b565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611ba7565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a56565b602002602001015187868581518110610ff257610ff2611a56565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c8d565b6001600160c01b031682828151811061108b5761108b611a56565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a56565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d4b565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611ba7565b60008151811061117657611176611a56565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c8d565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a56565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611ce9565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d6a565b909216918061132981611d7d565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b915060208301356001600160401b038111156113f157600080fd5b8301601f8101851361140257600080fd5b803561141561141082611395565b611365565b8082825260208201915060208360051b85010192508783111561143757600080fd5b6020840193505b8284101561146257833561145181611337565b82526020938401939091019061143e565b809450505050509250929050565b600081518084526020840193506020830160005b828110156114a2578151865260209586019590910190600101611484565b5093949350505050565b6020815260006114bf6020830184611470565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114e3816114c6565b919050565b6000806000606084860312156114fd57600080fd5b833561150881611337565b925060208401356001600160401b0381111561152357600080fd5b8401601f8101861361153457600080fd5b80356001600160401b0381111561154d5761154d61134f565b611560601f8201601f1916602001611365565b81815287602083850101111561157557600080fd5b8160208401602083013760006020838301015280945050505061159a604085016114d8565b90509250925092565b600082825180855260208501945060208160051b8301016020850160005b8381101561164757848303601f190188528151805180855260209182019185019060005b8181101561162e57835180516001600160a01b03168452602080820151818601526040918201516001600160601b031691850191909152909301926060909201916001016115e5565b50506020998a01999094509290920191506001016115c1565b50909695505050505050565b6020815260006114bf60208301846115a3565b600082601f83011261167757600080fd5b813561168561141082611395565b8082825260208201915060208360051b8601019250858311156116a757600080fd5b602085015b8381101561109e5780358352602092830192016116ac565b600080604083850312156116d757600080fd5b82356116e281611337565b915060208301356001600160401b038111156116fd57600080fd5b61170985828601611666565b9150509250929050565b602080825282518282018190526000918401906040840190835b818110156117545783516001600160a01b031683526020938401939092019160010161172d565b509095945050505050565b60008083601f84011261177157600080fd5b5081356001600160401b0381111561178857600080fd5b6020830191508360208260051b85010111156117a357600080fd5b9250929050565b600080600080600080608087890312156117c357600080fd5b86356117ce81611337565b955060208701356117de816114c6565b945060408701356001600160401b038111156117f957600080fd5b8701601f8101891361180a57600080fd5b80356001600160401b0381111561182057600080fd5b89602082840101111561183257600080fd5b6020919091019450925060608701356001600160401b0381111561185557600080fd5b61186189828a0161175f565b979a9699509497509295939492505050565b600081518084526020840193506020830160005b828110156114a257815163ffffffff16865260209586019590910190600101611887565b6020815260008251608060208401526118c760a0840182611873565b90506020840151601f198483030160408501526118e48282611873565b9150506040840151601f198483030160608501526119028282611873565b6060860151858203601f190160808701528051808352919350602090810192508084019190600582901b85010160005b828110156106b957601f1986830301845261194e828651611873565b60209586019594909401939150600101611932565b60008060006060848603121561197857600080fd5b833561198381611337565b925060208401356001600160401b0381111561199e57600080fd5b6119aa86828701611666565b92505060408401356119bb816114c6565b809150509250925092565b602080825282518282018190526000918401906040840190835b818110156117545783518352602093840193909201916001016119e0565b600080600060608486031215611a1357600080fd5b8335611a1e81611337565b92506020840135915060408401356119bb816114c6565b828152604060208201526000611a4e60408301846115a3565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7e57600080fd5b5051919050565b600060208284031215611a9757600080fd5b81516114bf81611337565b600060208284031215611ab457600080fd5b81516001600160401b03811115611aca57600080fd5b8201601f81018413611adb57600080fd5b8051611ae961141082611395565b8082825260208201915060208360051b850101925086831115611b0b57600080fd5b6020840193505b82841015611b2d578351825260209384019390910190611b12565b9695505050505050565b600060208284031215611b4957600080fd5b81516001600160601b03811681146114bf57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b8d57600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215611bb957600080fd5b81516001600160401b03811115611bcf57600080fd5b8201601f81018413611be057600080fd5b8051611bee61141082611395565b8082825260208201915060208360051b850101925086831115611c1057600080fd5b6020840193505b82841015611b2d578351611c2a816114c6565b825260209384019390910190611c17565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c84604083018486611c3b565b95945050505050565b600060208284031215611c9f57600080fd5b81516001600160c01b03811681146114bf57600080fd5b600060208284031215611cc857600080fd5b81516114bf816114c6565b634e487b7160e01b600052601160045260246000fd5b600060018201611cfb57611cfb611cd3565b5060010190565b600060ff821660ff8103611d1857611d18611cd3565b60010192915050565b604081526000611d35604083018587611c3b565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a4e6040830184611470565b8181038181111561133157611331611cd3565b600061ffff821661ffff8103611d1857611d18611cd356fea264697066735822122033585ad22b02fc74fbd447d232f18fbc94c4d2d5f8667d94aaa1ee5226d7192a64736f6c634300081b0033","gas_used":1526996,"gas_limit":2036506,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114ac565b60405180910390f35b6100a361009e3660046114e8565b610245565b6040516100879190611653565b6100c36100be3660046116c4565b6106c5565b6040516100879190611713565b6100e36100de3660046117aa565b6107d2565b60405161008791906118ab565b6101036100fe366004611963565b610eea565b60405161008791906119c6565b61012361011e3660046119fe565b6110a8565b604051610087929190611a35565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a56565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a6c565b82828151811061022b5761022b611a56565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a85565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a85565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a85565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a56565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611aa2565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a56565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a56565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a85565b6001600160a01b031681526020018383815181106105b6576105b6611a56565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a56565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b37565b6001600160601b031681525085858151811061068257610682611a56565b6020026020010151828151811061069b5761069b611a56565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a56565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a85565b8282815181106107b2576107b2611a56565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a85565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b60565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611ba7565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c64565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611ba7565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a56565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a56565b905060200201358e88600001518681518110610a9257610a92611a56565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c8d565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a56565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a56565b905060200201358d8d8860ff16818110610c2d57610c2d611a56565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611cb6565b85606001518560ff1681518110610cc057610cc0611a56565b60200260200101518481518110610cd957610cd9611a56565b63ffffffff9092166020928302919091019091015282610cf881611ce9565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a56565b60200260200101518181518110610d8957610d89611a56565b6020026020010151828281518110610da357610da3611a56565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a56565b602002602001018190525050508080610df390611d02565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a85565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d21565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611ba7565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d4b565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611ba7565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a56565b602002602001015187868581518110610ff257610ff2611a56565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c8d565b6001600160c01b031682828151811061108b5761108b611a56565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a56565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d4b565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611ba7565b60008151811061117657611176611a56565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c8d565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a56565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611ce9565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d6a565b909216918061132981611d7d565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b915060208301356001600160401b038111156113f157600080fd5b8301601f8101851361140257600080fd5b803561141561141082611395565b611365565b8082825260208201915060208360051b85010192508783111561143757600080fd5b6020840193505b8284101561146257833561145181611337565b82526020938401939091019061143e565b809450505050509250929050565b600081518084526020840193506020830160005b828110156114a2578151865260209586019590910190600101611484565b5093949350505050565b6020815260006114bf6020830184611470565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114e3816114c6565b919050565b6000806000606084860312156114fd57600080fd5b833561150881611337565b925060208401356001600160401b0381111561152357600080fd5b8401601f8101861361153457600080fd5b80356001600160401b0381111561154d5761154d61134f565b611560601f8201601f1916602001611365565b81815287602083850101111561157557600080fd5b8160208401602083013760006020838301015280945050505061159a604085016114d8565b90509250925092565b600082825180855260208501945060208160051b8301016020850160005b8381101561164757848303601f190188528151805180855260209182019185019060005b8181101561162e57835180516001600160a01b03168452602080820151818601526040918201516001600160601b031691850191909152909301926060909201916001016115e5565b50506020998a01999094509290920191506001016115c1565b50909695505050505050565b6020815260006114bf60208301846115a3565b600082601f83011261167757600080fd5b813561168561141082611395565b8082825260208201915060208360051b8601019250858311156116a757600080fd5b602085015b8381101561109e5780358352602092830192016116ac565b600080604083850312156116d757600080fd5b82356116e281611337565b915060208301356001600160401b038111156116fd57600080fd5b61170985828601611666565b9150509250929050565b602080825282518282018190526000918401906040840190835b818110156117545783516001600160a01b031683526020938401939092019160010161172d565b509095945050505050565b60008083601f84011261177157600080fd5b5081356001600160401b0381111561178857600080fd5b6020830191508360208260051b85010111156117a357600080fd5b9250929050565b600080600080600080608087890312156117c357600080fd5b86356117ce81611337565b955060208701356117de816114c6565b945060408701356001600160401b038111156117f957600080fd5b8701601f8101891361180a57600080fd5b80356001600160401b0381111561182057600080fd5b89602082840101111561183257600080fd5b6020919091019450925060608701356001600160401b0381111561185557600080fd5b61186189828a0161175f565b979a9699509497509295939492505050565b600081518084526020840193506020830160005b828110156114a257815163ffffffff16865260209586019590910190600101611887565b6020815260008251608060208401526118c760a0840182611873565b90506020840151601f198483030160408501526118e48282611873565b9150506040840151601f198483030160608501526119028282611873565b6060860151858203601f190160808701528051808352919350602090810192508084019190600582901b85010160005b828110156106b957601f1986830301845261194e828651611873565b60209586019594909401939150600101611932565b60008060006060848603121561197857600080fd5b833561198381611337565b925060208401356001600160401b0381111561199e57600080fd5b6119aa86828701611666565b92505060408401356119bb816114c6565b809150509250925092565b602080825282518282018190526000918401906040840190835b818110156117545783518352602093840193909201916001016119e0565b600080600060608486031215611a1357600080fd5b8335611a1e81611337565b92506020840135915060408401356119bb816114c6565b828152604060208201526000611a4e60408301846115a3565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7e57600080fd5b5051919050565b600060208284031215611a9757600080fd5b81516114bf81611337565b600060208284031215611ab457600080fd5b81516001600160401b03811115611aca57600080fd5b8201601f81018413611adb57600080fd5b8051611ae961141082611395565b8082825260208201915060208360051b850101925086831115611b0b57600080fd5b6020840193505b82841015611b2d578351825260209384019390910190611b12565b9695505050505050565b600060208284031215611b4957600080fd5b81516001600160601b03811681146114bf57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b8d57600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215611bb957600080fd5b81516001600160401b03811115611bcf57600080fd5b8201601f81018413611be057600080fd5b8051611bee61141082611395565b8082825260208201915060208360051b850101925086831115611c1057600080fd5b6020840193505b82841015611b2d578351611c2a816114c6565b825260209384019390910190611c17565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c84604083018486611c3b565b95945050505050565b600060208284031215611c9f57600080fd5b81516001600160c01b03811681146114bf57600080fd5b600060208284031215611cc857600080fd5b81516114bf816114c6565b634e487b7160e01b600052601160045260246000fd5b600060018201611cfb57611cfb611cd3565b5060010190565b600060ff821660ff8103611d1857611d18611cd3565b60010192915050565b604081526000611d35604083018587611c3b565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a4e6040830184611470565b8181038181111561133157611331611cd3565b600061ffff821661ffff8103611d1857611d18611cd356fea264697066735822122033585ad22b02fc74fbd447d232f18fbc94c4d2d5f8667d94aaa1ee5226d7192a64736f6c634300081b0033","nonce":52,"gas_used":1700448},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x19f260","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x72ff342cc0acfb86cbd4513d76ab90297e2c56d272e3165a5e381274ca299052","block_number":10},{"info":{"transaction_hash":"0x6759da13c2e19bf5e0b93cf402e93b385fc612e9e11c33212f128ad1aaca2cf8","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","nonce":38,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x117e5c","logs":[{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000020000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000100000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000080000000000000000000000000000000000000000000000"},"block_hash":"0xc49f28e9848bce1cddad6c5fb3fc98de92b15ad335e6fefe8442f7c3aecc4225","block_number":4},{"info":{"transaction_hash":"0x531bb7d2f09e987f09c4d13963a4d4dba280416d1bf45f78aa8cf8afe82c8eb2","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000064c0c53b8b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a6500000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":113539,"gas_limit":176854,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef286000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000064c0c53b8b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a6500000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":107269,"gas_limit":167966,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xc0c53b8b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65","output":"0x","gas_used":94380,"gas_limit":152871,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2}]}],"exit":"Stop","out":"0x","nonce":49,"gas_used":136899},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x498c9c","logs":[{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d"],"data":"0x"},{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0xe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000001000000400000000000000000800000000000000000000000000000000000000000000000000100000000002000000000000000000000000000000000000000000002000001000000000000000000000000000008000000020000000000010100000800000000000000000000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000104000000000000000000000000000000000020000000200000000000040000100000002000000000000000000020000000000000000000000000000000000000000000000000000000000000001000"},"block_hash":"0x282d23ca81d55c3feed07c818845e579a11199a8de95416327a7443e60ba11c8","block_number":8},{"info":{"transaction_hash":"0xba54405e61670e8eeb8596a47a22c52a11eff05d75cb443ab8f5dfb25a7ceb0c","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x998abeb3e57409262ae5b751f60747921b33613e","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x998abeb3e57409262ae5b751f60747921b33613e","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","nonce":39,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1a3d8a","logs":[{"address":"0x998abeb3e57409262ae5b751f60747921b33613e","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x998abeb3e57409262ae5b751f60747921b33613e","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00002000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000080400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000100000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xc49f28e9848bce1cddad6c5fb3fc98de92b15ad335e6fefe8442f7c3aecc4225","block_number":4},{"info":{"transaction_hash":"0xa03947089b4d209dcb969accc740072a4de1a60d680f61dde8f9ed0a6ae14cc7","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0xde0b6b3a7640000","data":"0x4223d5510000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0","output":"0x","gas_used":31673,"gas_limit":32021,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0xde0b6b3a7640000","data":"0x4223d5510000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0","output":"0x","gas_used":24378,"gas_limit":24378,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x0ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0","0x0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0"],"data":"0x0000000000000000000000000000000000000000000000000de0b6b3a7640000"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x","nonce":57,"gas_used":53105},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xcf71","logs":[{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0x0ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0","0x0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0"],"data":"0x0000000000000000000000000000000000000000000000000de0b6b3a7640000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000010000000000000000000000000000008000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000100001000"},"block_hash":"0x1228cab88f965a1789dc9a58ef56ae6f1cad3aa89f6846450e6c841beb4f5306","block_number":14},{"info":{"transaction_hash":"0xa0c3c8085cc021b3691aa6f77b08b8d2ffb8f368c2c79b759908cc6fa670d162","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x99bba657f2bbc93c02d617f8ba121cb8fc104acf","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x99bba657f2bbc93c02d617f8ba121cb8fc104acf","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60c060405234801561001057600080fd5b5060405161389c38038061389c83398101604081905261002f9161005e565b6001600160a01b0391821660a05216608052610098565b6001600160a01b038116811461005b57600080fd5b50565b6000806040838503121561007157600080fd5b825161007c81610046565b602084015190925061008d81610046565b809150509250929050565b60805160a0516137a06100fc6000396000818161037a015281816106340152818161096701528181610ccf015281816110f0015281816116d0015281816117d2015281816118eb0152611cad0152600081816105290152611e6e01526137a06000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d89565b610959565b604051610217929190612e29565b6102b56102b0366004612e4e565b610c15565b6040516102179190612e7a565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4e565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4e565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f85565b610ccd565b61035d610358366004612d89565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc366004613046565b611240565b6040516102179190613098565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130d6565b61152d565b6040516102179190613109565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461315a565b6116ce565b61027f610495366004613184565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d136600461324f565b6118e9565b6102546104e436600461329c565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132d9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b610254610559366004613315565b611ac3565b61041461056c366004612e4e565b611b58565b61025461057f3660046132d9565b611c41565b61027f610592366004613357565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133b4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b49190613405565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613422565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133b4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561349e565b905060200201602081019061084a91906134b4565b8289898481811061085d5761085d61349e565b90506020020135815481106108745761087461349e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61349e565b90506020020135815481106108f4576108f461349e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61349e565b905060200201602081019061093091906134b4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109a45760405162461bcd60e51b8152600401610611906134cf565b6000836001600160401b038111156109be576109be612ef4565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612ef4565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61349e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361349e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61349e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f9190613405565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613422565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133b4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61349e565b602002602001015181548110610ea357610ea361349e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161349e565b602002602001015181548110610f1957610f1961349e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613557565b81548110610f6957610f6961349e565b9060005260206000200183878381518110610f8657610f8661349e565b602002602001015181548110610f9e57610f9e61349e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161356a565b6000828152602081208201600019908101919091550190558154829061101990600190613557565b815481106110295761102961349e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61349e565b6020026020010151815481106110725761107261349e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061356a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461112d5760405162461bcd60e51b8152600401610611906134cf565b6000805b8381101561123657600085858381811061114d5761114d61349e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612ef4565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761349e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61349e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613557565b6114699190613557565b815481106114795761147961349e565b60009182526020909120015463ffffffff16116114d757600161149c8284613557565b6114a69190613557565b8585815181106114b8576114b861349e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61349e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117509190613405565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613422565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133b4565b6117c283836123f7565b505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461180f5760405162461bcd60e51b8152600401610611906134cf565b60005b818110156118e357600083838381811061182e5761182e61349e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b9190613405565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613422565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133b4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613557565b81548110611a8c57611a8c61349e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613557565b81548110611bec57611bec61349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61349e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611cea5760405162461bcd60e51b8152600401610611906134cf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692639004134792611ea1928c9201613580565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135e2565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761349e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561349e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61349e565b6020026020010151611fae919061366d565b611fb89190613684565b611fc290866136a6565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613557565b815481106120fe576120fe61349e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613557565b815481106122b4576122b461349e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374b83398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136c5565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374b83398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136c5565b811015612646578482815181106125895761258961349e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861349e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61349e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661349e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61349e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261349e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61349e565b60200260200101516000015186848151811061285d5761285d61349e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613557565b81548110612a6c57612a6c61349e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613557565b925050506114ee565b80612aa1816136d8565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136ef565b600080821215612baa57612b998261370f565b612ba3908461372b565b9050610cae565b612ba382846136a6565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b03811115612d0057600080fd5b612d0c88828901612c80565b90955093505060408601356001600160401b03811115612d2b57600080fd5b612d3788828901612c80565b969995985093965092949392505050565b60008083601f840112612d5a57600080fd5b5081356001600160401b03811115612d7157600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9f57600080fd5b8435612daa81612c31565b93506020850135925060408501356001600160401b03811115612dcc57600080fd5b612dd887828801612d48565b95989497509550505050565b600081518084526020840193506020830160005b82811015612e1f5781516001600160601b0316865260209586019590910190600101612df8565b5093949350505050565b604081526000612e3c6040830185612de4565b82810360208401526123ee8185612de4565b60008060408385031215612e6157600080fd5b82359150612e7160208401612bb4565b90509250929050565b602080825282518282018190526000918401906040840190835b81811015612ee957612ed383855163ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b6020939093019260609290920191600101612e94565b509095945050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2c57612f2c612ef4565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5a57612f5a612ef4565b604052919050565b60006001600160401b03821115612f7b57612f7b612ef4565b5060051b60200190565b60008060408385031215612f9857600080fd5b612fa183612bb4565b915060208301356001600160401b03811115612fbc57600080fd5b8301601f81018513612fcd57600080fd5b8035612fe0612fdb82612f62565b612f32565b8082825260208201915060208360051b85010192508783111561300257600080fd5b6020840193505b82841015613024578335825260209384019390910190613009565b809450505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305b57600080fd5b61306484613032565b925060208401356001600160401b0381111561307f57600080fd5b61308b86828701612d48565b9497909650939450505050565b602080825282518282018190526000918401906040840190835b81811015612ee957835163ffffffff168352602093840193909201916001016130b2565b6000806000606084860312156130eb57600080fd5b6130f484612bb4565b95602085013595506040909401359392505050565b60608101610cae828463ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561316d57600080fd5b61317683612bb4565b9150612e7160208401613143565b60008060006040848603121561319957600080fd5b8335925060208401356001600160401b0381111561307f57600080fd5b600082601f8301126131c757600080fd5b81356131d5612fdb82612f62565b8082825260208201915060208360061b8601019250858311156131f757600080fd5b602085015b83811015611236576040818803121561321457600080fd5b61321c612f0a565b813561322781612c31565b815261323560208301613143565b6020820152808452506020830192506040810190506131fc565b6000806040838503121561326257600080fd5b61326b83612bb4565b915060208301356001600160401b0381111561328657600080fd5b613292858286016131b6565b9150509250929050565b6000806000606084860312156132b157600080fd5b6132ba84612bb4565b92506132c860208501613032565b929592945050506040919091013590565b6000806000606084860312156132ee57600080fd5b833592506132fe60208501612bb4565b915061330c60408501613032565b90509250925092565b6000806000806080858703121561332b57600080fd5b61333485612bb4565b935061334260208601613032565b93969395505050506040820135916060013590565b60008060006060848603121561336c57600080fd5b61337584612bb4565b925061338360208501613143565b915060408401356001600160401b0381111561339e57600080fd5b6133aa868287016131b6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561341757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134c657600080fd5b6114ee82613143565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613541565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0383168152604060208083018290528354918301829052600084815290812090916060840190835b818110156135d65783546001600160a01b03168352600193840193602090930192016135af565b50909695505050505050565b6000602082840312156135f457600080fd5b81516001600160401b0381111561360a57600080fd5b8201601f8101841361361b57600080fd5b8051613629612fdb82612f62565b8082825260208201915060208360051b85010192508683111561364b57600080fd5b6020840193505b82841015612276578351825260209384019390910190613652565b8082028115828204841417610cae57610cae613541565b6000826136a157634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b038181168382160190811115610cae57610cae613541565b80820180821115610cae57610cae613541565b6000816136e7576136e7613541565b506000190190565b818103600083128015838313168383128216171561062b5761062b613541565b6000600160ff1b820161372457613724613541565b5060000390565b6001600160601b038281168282160390811115610cae57610cae61354156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a264697066735822122066c84d910ac323d5558756abc711b3f82c77555706bfedf06be866ca6602f4ca64736f6c634300081b0033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d89565b610959565b604051610217929190612e29565b6102b56102b0366004612e4e565b610c15565b6040516102179190612e7a565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4e565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4e565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f85565b610ccd565b61035d610358366004612d89565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc366004613046565b611240565b6040516102179190613098565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130d6565b61152d565b6040516102179190613109565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461315a565b6116ce565b61027f610495366004613184565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d136600461324f565b6118e9565b6102546104e436600461329c565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132d9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b610254610559366004613315565b611ac3565b61041461056c366004612e4e565b611b58565b61025461057f3660046132d9565b611c41565b61027f610592366004613357565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133b4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b49190613405565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613422565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133b4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561349e565b905060200201602081019061084a91906134b4565b8289898481811061085d5761085d61349e565b90506020020135815481106108745761087461349e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61349e565b90506020020135815481106108f4576108f461349e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61349e565b905060200201602081019061093091906134b4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146109a45760405162461bcd60e51b8152600401610611906134cf565b6000836001600160401b038111156109be576109be612ef4565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612ef4565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61349e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361349e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61349e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f9190613405565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613422565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133b4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61349e565b602002602001015181548110610ea357610ea361349e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161349e565b602002602001015181548110610f1957610f1961349e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613557565b81548110610f6957610f6961349e565b9060005260206000200183878381518110610f8657610f8661349e565b602002602001015181548110610f9e57610f9e61349e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161356a565b6000828152602081208201600019908101919091550190558154829061101990600190613557565b815481106110295761102961349e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61349e565b6020026020010151815481106110725761107261349e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061356a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461112d5760405162461bcd60e51b8152600401610611906134cf565b6000805b8381101561123657600085858381811061114d5761114d61349e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612ef4565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761349e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61349e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613557565b6114699190613557565b815481106114795761147961349e565b60009182526020909120015463ffffffff16116114d757600161149c8284613557565b6114a69190613557565b8585815181106114b8576114b861349e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61349e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117509190613405565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613422565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133b4565b6117c283836123f7565b505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461180f5760405162461bcd60e51b8152600401610611906134cf565b60005b818110156118e357600083838381811061182e5761182e61349e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b9190613405565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613422565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133b4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613557565b81548110611a8c57611a8c61349e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613557565b81548110611bec57611bec61349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61349e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614611cea5760405162461bcd60e51b8152600401610611906134cf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91692639004134792611ea1928c9201613580565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135e2565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761349e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561349e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61349e565b6020026020010151611fae919061366d565b611fb89190613684565b611fc290866136a6565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613557565b815481106120fe576120fe61349e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613557565b815481106122b4576122b461349e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374b83398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136c5565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374b83398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136c5565b811015612646578482815181106125895761258961349e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861349e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61349e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661349e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61349e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261349e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61349e565b60200260200101516000015186848151811061285d5761285d61349e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613557565b81548110612a6c57612a6c61349e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613557565b925050506114ee565b80612aa1816136d8565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136ef565b600080821215612baa57612b998261370f565b612ba3908461372b565b9050610cae565b612ba382846136a6565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b03811115612d0057600080fd5b612d0c88828901612c80565b90955093505060408601356001600160401b03811115612d2b57600080fd5b612d3788828901612c80565b969995985093965092949392505050565b60008083601f840112612d5a57600080fd5b5081356001600160401b03811115612d7157600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9f57600080fd5b8435612daa81612c31565b93506020850135925060408501356001600160401b03811115612dcc57600080fd5b612dd887828801612d48565b95989497509550505050565b600081518084526020840193506020830160005b82811015612e1f5781516001600160601b0316865260209586019590910190600101612df8565b5093949350505050565b604081526000612e3c6040830185612de4565b82810360208401526123ee8185612de4565b60008060408385031215612e6157600080fd5b82359150612e7160208401612bb4565b90509250929050565b602080825282518282018190526000918401906040840190835b81811015612ee957612ed383855163ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b6020939093019260609290920191600101612e94565b509095945050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2c57612f2c612ef4565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5a57612f5a612ef4565b604052919050565b60006001600160401b03821115612f7b57612f7b612ef4565b5060051b60200190565b60008060408385031215612f9857600080fd5b612fa183612bb4565b915060208301356001600160401b03811115612fbc57600080fd5b8301601f81018513612fcd57600080fd5b8035612fe0612fdb82612f62565b612f32565b8082825260208201915060208360051b85010192508783111561300257600080fd5b6020840193505b82841015613024578335825260209384019390910190613009565b809450505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305b57600080fd5b61306484613032565b925060208401356001600160401b0381111561307f57600080fd5b61308b86828701612d48565b9497909650939450505050565b602080825282518282018190526000918401906040840190835b81811015612ee957835163ffffffff168352602093840193909201916001016130b2565b6000806000606084860312156130eb57600080fd5b6130f484612bb4565b95602085013595506040909401359392505050565b60608101610cae828463ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561316d57600080fd5b61317683612bb4565b9150612e7160208401613143565b60008060006040848603121561319957600080fd5b8335925060208401356001600160401b0381111561307f57600080fd5b600082601f8301126131c757600080fd5b81356131d5612fdb82612f62565b8082825260208201915060208360061b8601019250858311156131f757600080fd5b602085015b83811015611236576040818803121561321457600080fd5b61321c612f0a565b813561322781612c31565b815261323560208301613143565b6020820152808452506020830192506040810190506131fc565b6000806040838503121561326257600080fd5b61326b83612bb4565b915060208301356001600160401b0381111561328657600080fd5b613292858286016131b6565b9150509250929050565b6000806000606084860312156132b157600080fd5b6132ba84612bb4565b92506132c860208501613032565b929592945050506040919091013590565b6000806000606084860312156132ee57600080fd5b833592506132fe60208501612bb4565b915061330c60408501613032565b90509250925092565b6000806000806080858703121561332b57600080fd5b61333485612bb4565b935061334260208601613032565b93969395505050506040820135916060013590565b60008060006060848603121561336c57600080fd5b61337584612bb4565b925061338360208501613143565b915060408401356001600160401b0381111561339e57600080fd5b6133aa868287016131b6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561341757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134c657600080fd5b6114ee82613143565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613541565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0383168152604060208083018290528354918301829052600084815290812090916060840190835b818110156135d65783546001600160a01b03168352600193840193602090930192016135af565b50909695505050505050565b6000602082840312156135f457600080fd5b81516001600160401b0381111561360a57600080fd5b8201601f8101841361361b57600080fd5b8051613629612fdb82612f62565b8082825260208201915060208360051b85010192508683111561364b57600080fd5b6020840193505b82841015612276578351825260209384019390910190613652565b8082028115828204841417610cae57610cae613541565b6000826136a157634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b038181168382160190811115610cae57610cae613541565b80820180821115610cae57610cae613541565b6000816136e7576136e7613541565b506000190190565b818103600083128015838313168383128216171561062b5761062b613541565b6000600160ff1b820161372457613724613541565b5060000390565b6001600160601b038281168282160390811115610cae57610cae61354156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a264697066735822122066c84d910ac323d5558756abc711b3f82c77555706bfedf06be866ca6602f4ca64736f6c634300081b0033","gas_used":2851633,"gas_limit":3789353,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d89565b610959565b604051610217929190612e29565b6102b56102b0366004612e4e565b610c15565b6040516102179190612e7a565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4e565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4e565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f85565b610ccd565b61035d610358366004612d89565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc366004613046565b611240565b6040516102179190613098565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130d6565b61152d565b6040516102179190613109565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461315a565b6116ce565b61027f610495366004613184565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d136600461324f565b6118e9565b6102546104e436600461329c565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132d9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b610254610559366004613315565b611ac3565b61041461056c366004612e4e565b611b58565b61025461057f3660046132d9565b611c41565b61027f610592366004613357565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133b4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b49190613405565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613422565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133b4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561349e565b905060200201602081019061084a91906134b4565b8289898481811061085d5761085d61349e565b90506020020135815481106108745761087461349e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61349e565b90506020020135815481106108f4576108f461349e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61349e565b905060200201602081019061093091906134b4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146109a45760405162461bcd60e51b8152600401610611906134cf565b6000836001600160401b038111156109be576109be612ef4565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612ef4565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61349e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361349e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61349e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f9190613405565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613422565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133b4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61349e565b602002602001015181548110610ea357610ea361349e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161349e565b602002602001015181548110610f1957610f1961349e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613557565b81548110610f6957610f6961349e565b9060005260206000200183878381518110610f8657610f8661349e565b602002602001015181548110610f9e57610f9e61349e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161356a565b6000828152602081208201600019908101919091550190558154829061101990600190613557565b815481106110295761102961349e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61349e565b6020026020010151815481106110725761107261349e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061356a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461112d5760405162461bcd60e51b8152600401610611906134cf565b6000805b8381101561123657600085858381811061114d5761114d61349e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612ef4565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761349e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61349e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613557565b6114699190613557565b815481106114795761147961349e565b60009182526020909120015463ffffffff16116114d757600161149c8284613557565b6114a69190613557565b8585815181106114b8576114b861349e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61349e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117509190613405565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613422565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133b4565b6117c283836123f7565b505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461180f5760405162461bcd60e51b8152600401610611906134cf565b60005b818110156118e357600083838381811061182e5761182e61349e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b9190613405565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613422565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133b4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613557565b81548110611a8c57611a8c61349e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613557565b81548110611bec57611bec61349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61349e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614611cea5760405162461bcd60e51b8152600401610611906134cf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91692639004134792611ea1928c9201613580565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135e2565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761349e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561349e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61349e565b6020026020010151611fae919061366d565b611fb89190613684565b611fc290866136a6565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613557565b815481106120fe576120fe61349e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613557565b815481106122b4576122b461349e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374b83398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136c5565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374b83398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136c5565b811015612646578482815181106125895761258961349e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861349e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61349e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661349e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61349e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261349e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61349e565b60200260200101516000015186848151811061285d5761285d61349e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613557565b81548110612a6c57612a6c61349e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613557565b925050506114ee565b80612aa1816136d8565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136ef565b600080821215612baa57612b998261370f565b612ba3908461372b565b9050610cae565b612ba382846136a6565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b03811115612d0057600080fd5b612d0c88828901612c80565b90955093505060408601356001600160401b03811115612d2b57600080fd5b612d3788828901612c80565b969995985093965092949392505050565b60008083601f840112612d5a57600080fd5b5081356001600160401b03811115612d7157600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9f57600080fd5b8435612daa81612c31565b93506020850135925060408501356001600160401b03811115612dcc57600080fd5b612dd887828801612d48565b95989497509550505050565b600081518084526020840193506020830160005b82811015612e1f5781516001600160601b0316865260209586019590910190600101612df8565b5093949350505050565b604081526000612e3c6040830185612de4565b82810360208401526123ee8185612de4565b60008060408385031215612e6157600080fd5b82359150612e7160208401612bb4565b90509250929050565b602080825282518282018190526000918401906040840190835b81811015612ee957612ed383855163ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b6020939093019260609290920191600101612e94565b509095945050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2c57612f2c612ef4565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5a57612f5a612ef4565b604052919050565b60006001600160401b03821115612f7b57612f7b612ef4565b5060051b60200190565b60008060408385031215612f9857600080fd5b612fa183612bb4565b915060208301356001600160401b03811115612fbc57600080fd5b8301601f81018513612fcd57600080fd5b8035612fe0612fdb82612f62565b612f32565b8082825260208201915060208360051b85010192508783111561300257600080fd5b6020840193505b82841015613024578335825260209384019390910190613009565b809450505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305b57600080fd5b61306484613032565b925060208401356001600160401b0381111561307f57600080fd5b61308b86828701612d48565b9497909650939450505050565b602080825282518282018190526000918401906040840190835b81811015612ee957835163ffffffff168352602093840193909201916001016130b2565b6000806000606084860312156130eb57600080fd5b6130f484612bb4565b95602085013595506040909401359392505050565b60608101610cae828463ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561316d57600080fd5b61317683612bb4565b9150612e7160208401613143565b60008060006040848603121561319957600080fd5b8335925060208401356001600160401b0381111561307f57600080fd5b600082601f8301126131c757600080fd5b81356131d5612fdb82612f62565b8082825260208201915060208360061b8601019250858311156131f757600080fd5b602085015b83811015611236576040818803121561321457600080fd5b61321c612f0a565b813561322781612c31565b815261323560208301613143565b6020820152808452506020830192506040810190506131fc565b6000806040838503121561326257600080fd5b61326b83612bb4565b915060208301356001600160401b0381111561328657600080fd5b613292858286016131b6565b9150509250929050565b6000806000606084860312156132b157600080fd5b6132ba84612bb4565b92506132c860208501613032565b929592945050506040919091013590565b6000806000606084860312156132ee57600080fd5b833592506132fe60208501612bb4565b915061330c60408501613032565b90509250925092565b6000806000806080858703121561332b57600080fd5b61333485612bb4565b935061334260208601613032565b93969395505050506040820135916060013590565b60008060006060848603121561336c57600080fd5b61337584612bb4565b925061338360208501613143565b915060408401356001600160401b0381111561339e57600080fd5b6133aa868287016131b6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561341757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134c657600080fd5b6114ee82613143565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613541565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0383168152604060208083018290528354918301829052600084815290812090916060840190835b818110156135d65783546001600160a01b03168352600193840193602090930192016135af565b50909695505050505050565b6000602082840312156135f457600080fd5b81516001600160401b0381111561360a57600080fd5b8201601f8101841361361b57600080fd5b8051613629612fdb82612f62565b8082825260208201915060208360051b85010192508683111561364b57600080fd5b6020840193505b82841015612276578351825260209384019390910190613652565b8082028115828204841417610cae57610cae613541565b6000826136a157634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b038181168382160190811115610cae57610cae613541565b80820180821115610cae57610cae613541565b6000816136e7576136e7613541565b506000190190565b818103600083128015838313168383128216171561062b5761062b613541565b6000600160ff1b820161372457613724613541565b5060000390565b6001600160601b038281168282160390811115610cae57610cae61354156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a264697066735822122066c84d910ac323d5558756abc711b3f82c77555706bfedf06be866ca6602f4ca64736f6c634300081b0033","nonce":42,"gas_used":3129679},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x2fc14f","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xc3a6dcac3748c6c5456194f4d0559acb3fce93bdb951a1aaf5e92d91230fcb99","block_number":6},{"info":{"transaction_hash":"0x7224f9f8c9558feec8910b776ac56c70c752a1d2412ffb4c9d360f721249b1d5","transaction_index":3,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":117332,"gas_limit":170879,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":111036,"gas_limit":162059,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","address":"0x9a676e781a523b5d0c0e43731313a708cb607508","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x1794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":98133,"gas_limit":147042,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3}]}],"exit":"Stop","out":"0x","nonce":22,"gas_used":140452},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x7d85c","logs":[{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508"],"data":"0x"},{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000000000000100000000000000000000000400080000000000400000002000001000240000000000000000000000000000000020000000000000100800800000004000000000000000000000000400000000100000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000002020400000200000000000040000000000002008000000000001000020000000000000000000000000000000000000000000000000000000000000400000"},"block_hash":"0xdc661eb62f3503115532a4a4ebf9dbb29830a7f54b0435e7188a418d1ac7faf1","block_number":12},{"info":{"transaction_hash":"0x46592688e43f9f32c373934da7a3fda6407d13c9a010b772b5d79bfc1b7a9b17","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":98665,"gas_limit":155049,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":92281,"gas_limit":146390,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","address":"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xcf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":79302,"gas_limit":131544,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f6","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":24,"gas_used":121913},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1dc39","logs":[{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae"],"data":"0x"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f6","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x000000000400000000000000400000004000000000000000008000000000000000000000000000000000000000000000000000000080001000000000000000000000000000000000000004000000020000010000000000000002000000000000000000000200000400000001008008000000040000000000000000000000004000000001000000000000000000000000008000000000c0000000000000000000000000000000000000000000000440000000000000000000000000000000008000000020400000200000000000040000010000002008000000000000000020000000000000000000000000000000000000000000000000000000000000400000"},"block_hash":"0x3ae86512f47472599bdf17ca766dd68a09554bd2059f48155a92fc414f24ddd2","block_number":14},{"info":{"transaction_hash":"0x5ba6faf2a70c742aa168d11c51d97037d73154708c6ecd35bd61fc87b0af9050","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x82e01223d51eb87e16a03e24687edf0f294da6f1","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x82e01223d51eb87e16a03e24687edf0f294da6f1","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b5060405161046a38038061046a83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6103d7806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea264697066735822122061fa9cc8916c2122543914d684bb9f917137a2515c322ada32d64f60e70550cb64736f6c634300080c00330000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","output":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea264697066735822122061fa9cc8916c2122543914d684bb9f917137a2515c322ada32d64f60e70550cb64736f6c634300080c0033","gas_used":219187,"gas_limit":306105,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea264697066735822122061fa9cc8916c2122543914d684bb9f917137a2515c322ada32d64f60e70550cb64736f6c634300080c0033","nonce":54,"gas_used":290049},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x46d01","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x1d298f2cf25bd7ff12a2ef732e2721e2debe441bcecb3bce2c0529a16179ce07","block_number":11},{"info":{"transaction_hash":"0x07fcd103ee0ca154b0df41b41dfec0848907f483d2ccb95fc49b5c956a34a00b","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000851356ae760d987e095750cceb3bc6014560891c0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd0000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000264dd8283f3000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af8000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":546572,"gas_limit":682457,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0x851356ae760d987e095750cceb3bc6014560891c","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000264dd8283f3000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af8000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":538890,"gas_limit":664279,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd00"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[3,5,7],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xdd8283f3000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af8000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000","output":"0x","gas_used":524781,"gas_limit":640228,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af80000000000000000000000000000000000000000000000000000000000000032"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":3}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4},{"Log":5},{"Call":0},{"Call":1},{"Call":2},{"Log":6}]},{"parent":2,"children":[4],"idx":3,"trace":{"depth":3,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xff694a770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000","output":"0x","gas_used":170301,"gas_limit":391547,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":3,"children":[],"idx":4,"trace":{"depth":4,"success":true,"caller":"0x95401dc811bb5740090279ba06cfa8fcf6113778","address":"0x99bba657f2bbc93c02d617f8ba121cb8fc104acf","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xff694a770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000","output":"0x","gas_used":162979,"gas_limit":378259,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2}]},{"parent":2,"children":[6],"idx":5,"trace":{"depth":3,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0xf5059a5d33d5853360d16c683c16e67980206f36","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x26d941f20000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":52363,"gas_limit":221086,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":5,"children":[],"idx":6,"trace":{"depth":4,"success":true,"caller":"0xf5059a5d33d5853360d16c683c16e67980206f36","address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x26d941f20000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":45068,"gas_limit":210488,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]},{"parent":2,"children":[8],"idx":7,"trace":{"depth":3,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x998abeb3e57409262ae5b751f60747921b33613e","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x26d941f20000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":52505,"gas_limit":166720,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":7,"children":[],"idx":8,"trace":{"depth":4,"success":true,"caller":"0x998abeb3e57409262ae5b751f60747921b33613e","address":"0x8f86403a4de0bb5791fa46b8e795c547942fe4cf","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x26d941f20000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":45210,"gas_limit":156972,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Stop","out":"0x","nonce":47,"gas_used":572712},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8bd28","logs":[{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd00"],"data":"0x"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af80000000000000000000000000000000000000000000000000000000000000032"},{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0x10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d"},{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0x11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000"},{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0x26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000001000000000040000000400400000000000000800000020000000000000800000000000000000000000000000000000000100800000000000000000080000000008000002400000102000001000400000010000000008000000000000000020000000000008100010820000000080200000000000000000000400100000100000000000000000000000000000000000080000000000000000000000000000000000000200000400400000000000000000000000000000000000000000020480000280000000000041100000000002000000000000000000020000000000000400000080000800000000000000000000000000000100000408000"},"block_hash":"0x6222c4f3c6f9a929c847e82190b35fd771759a630b2bfab5b1902dfec113f3f5","block_number":7},{"info":{"transaction_hash":"0x8cfe1718165e545c4415c8ec5d5f8d4e4a09fa3a1a9dd23f47c8f9a453a90394","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x0b306bf915c4d645ff596e518faf3f9669b97016","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x0b306bf915c4d645ff596e518faf3f9669b97016","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6101806040523480156200001257600080fd5b5060405162003dec38038062003dec8339810160408190526200003591620002e4565b868686868686866200004885826200037e565b63ffffffff1615620000ed5760405162461bcd60e51b815260206004820152606060248201527f52657761726473436f6f7264696e61746f723a2047454e455349535f5245574160448201527f5244535f54494d455354414d50206d7573742062652061206d756c7469706c6560648201527f206f662043414c43554c4154494f4e5f494e54455256414c5f5345434f4e4453608482015260a4015b60405180910390fd5b620000fc62015180866200037e565b63ffffffff16156200019d5760405162461bcd60e51b815260206004820152605760248201527f52657761726473436f6f7264696e61746f723a2043414c43554c4154494f4e5f60448201527f494e54455256414c5f5345434f4e4453206d7573742062652061206d756c746960648201527f706c65206f6620534e415053484f545f434144454e4345000000000000000000608482015260a401620000e4565b6001600160a01b0396871661012052949095166101405263ffffffff92831660805290821660a052811660c05291821660e0521661010052620001df620001f2565b5050466101605250620003b09350505050565b600054610100900460ff16156200025c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401620000e4565b60005460ff9081161015620002af576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114620002c757600080fd5b50565b805163ffffffff81168114620002df57600080fd5b919050565b600080600080600080600060e0888a0312156200030057600080fd5b87516200030d81620002b1565b60208901519097506200032081620002b1565b95506200033060408901620002ca565b94506200034060608901620002ca565b93506200035060808901620002ca565b92506200036060a08901620002ca565b91506200037060c08901620002ca565b905092959891949750929550565b600063ffffffff80841680620003a457634e487b7160e01b600052601260045260246000fd5b92169190910692915050565b60805160a05160c05160e051610100516101205161014051610160516139a562000447600039600061181f0152600081816104400152612295015260006106ec01526000818161035701526120c40152600081816102cb0152612170015260008181610419015261207301526000818161065e0152611dea01526000818161060401528181611ea10152611f7c01526139a56000f3fe608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613257565b610caa565b61033d61049a3660046132b7565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e3565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b16105143660046132fe565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613321565b611469565b6102b1610552366004613356565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6102b161068e366004613356565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc36600461339f565b61156b565b61033d6106cf366004613412565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342d565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344a565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613494565b61093b5760405162461bcd60e51b815260040161089e906134b1565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134f9565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110610b8957610b89613567565b9050602002810190610b9b919061357d565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c3565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a908390613709565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371c565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134f9565b600260975403610cf45760405162461bcd60e51b815260040161089e90613530565b6002609755600060ca610d0a60208601866132e3565b63ffffffff1681548110610d2057610d20613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a088018861372f565b90508110156110445736610e4f60e0890189613780565b83818110610e5f57610e5f613567565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137ca565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134f9565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137dd565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613494565b6113ea5760405162461bcd60e51b815260040161089e906134b1565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e3565b63ffffffff168154811061149457611494613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e5600184613801565b63ffffffff16815481106116fb576116fb613567565b906000526020600020906002020160000154036117245761171d600182613801565b9392505050565b8061172e8161381e565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000000000460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342d565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344a565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134f9565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110611a3257611a32613567565b9050602002810190611a44919061357d565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c3565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac3908390613709565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371c565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613780565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611e1a60a08301608084016132e3565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611ed060a08301608084016132e3565b611eda9190613854565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611fab60808301606084016132e3565b611fb59190613854565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e3565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff16426120a391906137ca565b111580156120ec57506120bc60808201606083016132e3565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642613709565b6121a660808301606084016132e3565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613780565b905081101561245357600061224d8480613780565b8381811061225d5761225d613567565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613494565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c083018361372f565b905061255e60a084018461372f565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613780565b905061260460c084018461372f565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e3565b6126af6040860186613877565b86606001612b77565b60005b6126c860a084018461372f565b90508110156124535761276260808401356126e660a086018661372f565b848181106126f6576126f6613567565b905060200201602081019061270b91906132e3565b61271860c087018761372f565b8581811061272857612728613567565b905060200281019061273a9190613877565b61274760e0890189613780565b8781811061275757612757613567565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613494565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138be565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138be565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f6565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613908565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613908565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b613092602082613709565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e919061391c565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff808211156131fa57600080fd5b818501915085601f83011261320e57600080fd5b81358181111561321d57600080fd5b8660208260051b850101111561323257600080fd5b60209290920196919550909350505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326a57600080fd5b823567ffffffffffffffff81111561328157600080fd5b61328d85828601613244565b9250506020830135613149816130db565b803563ffffffff811681146132b257600080fd5b919050565b600080604083850312156132ca57600080fd5b823591506132da6020840161329e565b90509250929050565b6000602082840312156132f557600080fd5b61171d8261329e565b60006020828403121561331057600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333357600080fd5b813567ffffffffffffffff81111561334a57600080fd5b612e4b84828501613244565b6000806040838503121561336957600080fd5b8235613374816130db565b946020939093013593505050565b80356132b2816130db565b803561ffff811681146132b257600080fd5b60008060008060008060c087890312156133b857600080fd5b86356133c3816130db565b955060208701356133d3816130db565b94506040870135935060608701356133ea816130db565b92506133f86080880161329e565b915061340660a0880161338d565b90509295509295509295565b60006020828403121561342457600080fd5b61171d8261338d565b60006020828403121561343f57600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a657600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359357600080fd5b9190910192915050565b818352600060208085019450826000805b868110156136025782356135c1816130db565b6001600160a01b03168852828401356bffffffffffffffffffffffff81168082146135ea578384fd5b898601525060409788019792909201916001016135ae565b50959695505050505050565b60008135601e1983360301811261362457600080fd5b820160208101903567ffffffffffffffff81111561364157600080fd5b8060061b360382131561365357600080fd5b60a0855261366560a08601828461359d565b91505061367460208401613382565b6001600160a01b03166020850152604083810135908501526136986060840161329e565b63ffffffff1660608501526136af6080840161329e565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136ea606083018461360e565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f3565b60208152600061171d602083018461360e565b6000808335601e1984360301811261374657600080fd5b83018035915067ffffffffffffffff82111561376157600080fd5b6020019150600581901b360382131561377957600080fd5b9250929050565b6000808335601e1984360301811261379757600080fd5b83018035915067ffffffffffffffff8211156137b257600080fd5b6020019150600681901b360382131561377957600080fd5b81810381811115610a7757610a776136f3565b63ffffffff8181168382160190808211156137fa576137fa6136f3565b5092915050565b63ffffffff8281168282160390808211156137fa576137fa6136f3565b600063ffffffff821680613834576138346136f3565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061386b5761386b61383e565b92169190910692915050565b6000808335601e1984360301811261388e57600080fd5b83018035915067ffffffffffffffff8211156138a957600080fd5b60200191503681900382131561377957600080fd5b6000826138cd576138cd61383e565b500490565b60005b838110156138ed5781810151838201526020016138d5565b50506000910152565b600082516135938184602087016138d2565b6000826139175761391761383e565b500690565b602081526000825180602084015261393b8160408501602087016138d2565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a24fa288bd4bdcb1a7a813fb6a838dbea7b30eebacde1df7b8b1ffae0b140b2b64736f6c63430008180033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000000000000000000000000000000000000093a8000000000000000000000000000000000000000000000000000000000005c4900000000000000000000000000000000000000000000000000000000000076a7000000000000000000000000000000000000000000000000000000000000278d000000000000000000000000000000000000000000000000000000000065fb7880","output":"0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613257565b610caa565b61033d61049a3660046132b7565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e3565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b16105143660046132fe565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613321565b611469565b6102b1610552366004613356565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613356565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc36600461339f565b61156b565b61033d6106cf366004613412565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342d565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344a565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613494565b61093b5760405162461bcd60e51b815260040161089e906134b1565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134f9565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110610b8957610b89613567565b9050602002810190610b9b919061357d565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c3565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a908390613709565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371c565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134f9565b600260975403610cf45760405162461bcd60e51b815260040161089e90613530565b6002609755600060ca610d0a60208601866132e3565b63ffffffff1681548110610d2057610d20613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a088018861372f565b90508110156110445736610e4f60e0890189613780565b83818110610e5f57610e5f613567565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137ca565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134f9565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137dd565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613494565b6113ea5760405162461bcd60e51b815260040161089e906134b1565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e3565b63ffffffff168154811061149457611494613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e5600184613801565b63ffffffff16815481106116fb576116fb613567565b906000526020600020906002020160000154036117245761171d600182613801565b9392505050565b8061172e8161381e565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342d565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344a565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134f9565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110611a3257611a32613567565b9050602002810190611a44919061357d565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c3565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac3908390613709565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371c565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613780565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e3565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e3565b611eda9190613854565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e3565b611fb59190613854565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e3565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137ca565b111580156120ec57506120bc60808201606083016132e3565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d001642613709565b6121a660808301606084016132e3565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613780565b905081101561245357600061224d8480613780565b8381811061225d5761225d613567565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613494565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c083018361372f565b905061255e60a084018461372f565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613780565b905061260460c084018461372f565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e3565b6126af6040860186613877565b86606001612b77565b60005b6126c860a084018461372f565b90508110156124535761276260808401356126e660a086018661372f565b848181106126f6576126f6613567565b905060200201602081019061270b91906132e3565b61271860c087018761372f565b8581811061272857612728613567565b905060200281019061273a9190613877565b61274760e0890189613780565b8781811061275757612757613567565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613494565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138be565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138be565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f6565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613908565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613908565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b613092602082613709565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e919061391c565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff808211156131fa57600080fd5b818501915085601f83011261320e57600080fd5b81358181111561321d57600080fd5b8660208260051b850101111561323257600080fd5b60209290920196919550909350505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326a57600080fd5b823567ffffffffffffffff81111561328157600080fd5b61328d85828601613244565b9250506020830135613149816130db565b803563ffffffff811681146132b257600080fd5b919050565b600080604083850312156132ca57600080fd5b823591506132da6020840161329e565b90509250929050565b6000602082840312156132f557600080fd5b61171d8261329e565b60006020828403121561331057600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333357600080fd5b813567ffffffffffffffff81111561334a57600080fd5b612e4b84828501613244565b6000806040838503121561336957600080fd5b8235613374816130db565b946020939093013593505050565b80356132b2816130db565b803561ffff811681146132b257600080fd5b60008060008060008060c087890312156133b857600080fd5b86356133c3816130db565b955060208701356133d3816130db565b94506040870135935060608701356133ea816130db565b92506133f86080880161329e565b915061340660a0880161338d565b90509295509295509295565b60006020828403121561342457600080fd5b61171d8261338d565b60006020828403121561343f57600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a657600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359357600080fd5b9190910192915050565b818352600060208085019450826000805b868110156136025782356135c1816130db565b6001600160a01b03168852828401356bffffffffffffffffffffffff81168082146135ea578384fd5b898601525060409788019792909201916001016135ae565b50959695505050505050565b60008135601e1983360301811261362457600080fd5b820160208101903567ffffffffffffffff81111561364157600080fd5b8060061b360382131561365357600080fd5b60a0855261366560a08601828461359d565b91505061367460208401613382565b6001600160a01b03166020850152604083810135908501526136986060840161329e565b63ffffffff1660608501526136af6080840161329e565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136ea606083018461360e565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f3565b60208152600061171d602083018461360e565b6000808335601e1984360301811261374657600080fd5b83018035915067ffffffffffffffff82111561376157600080fd5b6020019150600581901b360382131561377957600080fd5b9250929050565b6000808335601e1984360301811261379757600080fd5b83018035915067ffffffffffffffff8211156137b257600080fd5b6020019150600681901b360382131561377957600080fd5b81810381811115610a7757610a776136f3565b63ffffffff8181168382160190808211156137fa576137fa6136f3565b5092915050565b63ffffffff8281168282160390808211156137fa576137fa6136f3565b600063ffffffff821680613834576138346136f3565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061386b5761386b61383e565b92169190910692915050565b6000808335601e1984360301811261388e57600080fd5b83018035915067ffffffffffffffff8211156138a957600080fd5b60200191503681900382131561377957600080fd5b6000826138cd576138cd61383e565b500490565b60005b838110156138ed5781810151838201526020016138d5565b50506000910152565b600082516135938184602087016138d2565b6000826139175761391761383e565b500690565b602081526000825180602084015261393b8160408501602087016138d2565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a24fa288bd4bdcb1a7a813fb6a838dbea7b30eebacde1df7b8b1ffae0b140b2b64736f6c63430008180033","gas_used":2979522,"gas_limit":3961815,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613257565b610caa565b61033d61049a3660046132b7565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e3565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b16105143660046132fe565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613321565b611469565b6102b1610552366004613356565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613356565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc36600461339f565b61156b565b61033d6106cf366004613412565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342d565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344a565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613494565b61093b5760405162461bcd60e51b815260040161089e906134b1565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134f9565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110610b8957610b89613567565b9050602002810190610b9b919061357d565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c3565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a908390613709565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371c565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134f9565b600260975403610cf45760405162461bcd60e51b815260040161089e90613530565b6002609755600060ca610d0a60208601866132e3565b63ffffffff1681548110610d2057610d20613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a088018861372f565b90508110156110445736610e4f60e0890189613780565b83818110610e5f57610e5f613567565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137ca565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134f9565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137dd565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613494565b6113ea5760405162461bcd60e51b815260040161089e906134b1565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e3565b63ffffffff168154811061149457611494613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e5600184613801565b63ffffffff16815481106116fb576116fb613567565b906000526020600020906002020160000154036117245761171d600182613801565b9392505050565b8061172e8161381e565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342d565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344a565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134f9565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110611a3257611a32613567565b9050602002810190611a44919061357d565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c3565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac3908390613709565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371c565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613780565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e3565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e3565b611eda9190613854565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e3565b611fb59190613854565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e3565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137ca565b111580156120ec57506120bc60808201606083016132e3565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d001642613709565b6121a660808301606084016132e3565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613780565b905081101561245357600061224d8480613780565b8381811061225d5761225d613567565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613494565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c083018361372f565b905061255e60a084018461372f565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613780565b905061260460c084018461372f565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e3565b6126af6040860186613877565b86606001612b77565b60005b6126c860a084018461372f565b90508110156124535761276260808401356126e660a086018661372f565b848181106126f6576126f6613567565b905060200201602081019061270b91906132e3565b61271860c087018761372f565b8581811061272857612728613567565b905060200281019061273a9190613877565b61274760e0890189613780565b8781811061275757612757613567565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613494565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138be565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138be565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f6565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613908565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613908565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b613092602082613709565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e919061391c565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff808211156131fa57600080fd5b818501915085601f83011261320e57600080fd5b81358181111561321d57600080fd5b8660208260051b850101111561323257600080fd5b60209290920196919550909350505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326a57600080fd5b823567ffffffffffffffff81111561328157600080fd5b61328d85828601613244565b9250506020830135613149816130db565b803563ffffffff811681146132b257600080fd5b919050565b600080604083850312156132ca57600080fd5b823591506132da6020840161329e565b90509250929050565b6000602082840312156132f557600080fd5b61171d8261329e565b60006020828403121561331057600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333357600080fd5b813567ffffffffffffffff81111561334a57600080fd5b612e4b84828501613244565b6000806040838503121561336957600080fd5b8235613374816130db565b946020939093013593505050565b80356132b2816130db565b803561ffff811681146132b257600080fd5b60008060008060008060c087890312156133b857600080fd5b86356133c3816130db565b955060208701356133d3816130db565b94506040870135935060608701356133ea816130db565b92506133f86080880161329e565b915061340660a0880161338d565b90509295509295509295565b60006020828403121561342457600080fd5b61171d8261338d565b60006020828403121561343f57600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a657600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359357600080fd5b9190910192915050565b818352600060208085019450826000805b868110156136025782356135c1816130db565b6001600160a01b03168852828401356bffffffffffffffffffffffff81168082146135ea578384fd5b898601525060409788019792909201916001016135ae565b50959695505050505050565b60008135601e1983360301811261362457600080fd5b820160208101903567ffffffffffffffff81111561364157600080fd5b8060061b360382131561365357600080fd5b60a0855261366560a08601828461359d565b91505061367460208401613382565b6001600160a01b03166020850152604083810135908501526136986060840161329e565b63ffffffff1660608501526136af6080840161329e565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136ea606083018461360e565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f3565b60208152600061171d602083018461360e565b6000808335601e1984360301811261374657600080fd5b83018035915067ffffffffffffffff82111561376157600080fd5b6020019150600581901b360382131561377957600080fd5b9250929050565b6000808335601e1984360301811261379757600080fd5b83018035915067ffffffffffffffff8211156137b257600080fd5b6020019150600681901b360382131561377957600080fd5b81810381811115610a7757610a776136f3565b63ffffffff8181168382160190808211156137fa576137fa6136f3565b5092915050565b63ffffffff8281168282160390808211156137fa576137fa6136f3565b600063ffffffff821680613834576138346136f3565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061386b5761386b61383e565b92169190910692915050565b6000808335601e1984360301811261388e57600080fd5b83018035915067ffffffffffffffff8211156138a957600080fd5b60200191503681900382131561377957600080fd5b6000826138cd576138cd61383e565b500490565b60005b838110156138ed5781810151838201526020016138d5565b50506000910152565b600082516135938184602087016138d2565b6000826139175761391761383e565b500690565b602081526000825180602084015261393b8160408501602087016138d2565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a24fa288bd4bdcb1a7a813fb6a838dbea7b30eebacde1df7b8b1ffae0b140b2b64736f6c63430008180033","nonce":15,"gas_used":3278672},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x320750","logs":[{"address":"0x0b306bf915c4d645ff596e518faf3f9669b97016","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000"},"block_hash":"0x66835bd370fe530f0849c43835f64e9d70ef796d79b976afce6a9d55047991b3","block_number":9},{"info":{"transaction_hash":"0xd4419af41a68cb6d42cf7795e938fa39e1bea5600b124364fb6c5b304c2f9220","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6101006040523480156200001257600080fd5b506040516200337938038062003379833981016040819052620000359162000140565b6001600160a01b0380841660805280831660a052811660c0526200005862000065565b50504660e0525062000194565b600054610100900460ff1615620000d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000125576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013d57600080fd5b50565b6000806000606084860312156200015657600080fd5b8351620001638162000127565b6020850151909350620001768162000127565b6040850151909250620001898162000127565b809150509250925092565b60805160a05160c05160e05161318f620001ea60003960006114b70152600061046e0152600061028501526000818161051a01528181610b8201528181610ecf01528181610f230152611a6c015261318f6000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b3d565b610a64565b61021e610a9c565b61032461030f366004612b76565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612b99565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bc7565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c08565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61021e61049e366004612cd1565b610d50565b61021e6104b1366004612d13565b610ec4565b61021e6104c4366004612d64565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612db7565b610fe1565b61021e6104fd366004612d13565b611019565b61021e610510366004612de3565b61114d565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61025a61054a366004612bc7565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e4f565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e6c565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eb6565b6106c15760405162461bcd60e51b815260040161062490612ed3565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f1b565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eb6565b610b245760405162461bcd60e51b815260040161062490612ed3565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bbf5760405162461bcd60e51b815260040161062490612f85565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612fe3565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612fe3565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f1b565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612fe3565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612fe3565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612fe3565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612fe3565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f0c5760405162461bcd60e51b815260040161062490612f85565b610bca84848484611d4c565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f605760405162461bcd60e51b815260040161062490612f85565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f1b565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612fe3565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612fe3565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612fe3565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612fe3565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612fe3565b90506020020160208101906113619190612ff9565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f000000000000000000000000000000000000000000000000000000000000000046036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e4f565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e6c565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906117839086908690600401613066565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c4919061307f565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130a9565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130d8565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612fe3565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130eb565b815481106122e8576122e8612fe3565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612fe3565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e6130fe565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613114565b036124c05750565b60018160048111156124d4576124d4613114565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613114565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613114565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613114565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eb6565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130d8565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061312a565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b81526004016106249190613146565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff80821115612aa357600080fd5b818901915089601f830112612ab757600080fd5b813581811115612ac957612ac9612a1e565b604051601f8201601f19908116603f01168101908382118183101715612af157612af1612a1e565b816040528281528c6020848701011115612b0a57600080fd5b8260208601602083013760006020848301015280955050505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5057600080fd5b8235612b5b816129d3565b91506020830135612b6b81612b2f565b809150509250929050565b600060208284031215612b8857600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bac57600080fd5b8235612bb7816129d3565b91506020830135612b6b816129d3565b600080600060608486031215612bdc57600080fd5b8335612be7816129d3565b92506020840135612bf7816129d3565b929592945050506040919091013590565b604080825283519082018190526000906020906060840190828701845b82811015612c4a5781516001600160a01b031684529284019290840190600101612c25565b5050508381038285015284518082528583019183019060005b81811015612c7f57835183529284019291840191600101612c63565b5090979650505050505050565b60008083601f840112612c9e57600080fd5b50813567ffffffffffffffff811115612cb657600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612ce457600080fd5b823567ffffffffffffffff811115612cfb57600080fd5b612d0785828601612c8c565b90969095509350505050565b60008060008060808587031215612d2957600080fd5b8435612d34816129d3565b93506020850135612d44816129d3565b92506040850135612d54816129d3565b9396929550929360600135925050565b60008060008060808587031215612d7a57600080fd5b8435612d85816129d3565b93506020850135612d95816129d3565b9250604085013591506060850135612dac816129d3565b939692955090935050565b60008060408385031215612dca57600080fd5b8235612dd5816129d3565b946020939093013593505050565b60008060008060408587031215612df957600080fd5b843567ffffffffffffffff80821115612e1157600080fd5b612e1d88838901612c8c565b90965094506020870135915080821115612e3657600080fd5b50612e4387828801612c8c565b95989497509550505050565b600060208284031215612e6157600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612ec857600080fd5b8151611d4581612b2f565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561300b57600080fd5b8135611d4581612b2f565b60005b83811015613031578181015183820152602001613019565b50506000910152565b60008151808452613052816020860160208601613016565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461303a565b60006020828403121561309157600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130bb57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130c2565b818103818111156121e6576121e66130c2565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161313c818460208701613016565b9190910192915050565b602081526000611d45602083018461303a56fea26469706673582212208f93c215613625117caec9113257c8859da3eb85d10c3f4716517f3a64d0f80c64736f6c63430008180033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc90000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853","output":"0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b3d565b610a64565b61021e610a9c565b61032461030f366004612b76565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612b99565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bc7565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c08565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612cd1565b610d50565b61021e6104b1366004612d13565b610ec4565b61021e6104c4366004612d64565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612db7565b610fe1565b61021e6104fd366004612d13565b611019565b61021e610510366004612de3565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bc7565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e4f565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e6c565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eb6565b6106c15760405162461bcd60e51b815260040161062490612ed3565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f1b565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eb6565b610b245760405162461bcd60e51b815260040161062490612ed3565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f85565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612fe3565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612fe3565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f1b565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612fe3565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612fe3565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612fe3565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612fe3565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f85565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f85565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f1b565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612fe3565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612fe3565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612fe3565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612fe3565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612fe3565b90506020020160208101906113619190612ff9565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e4f565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e6c565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906117839086908690600401613066565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c4919061307f565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130a9565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130d8565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612fe3565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130eb565b815481106122e8576122e8612fe3565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612fe3565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e6130fe565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613114565b036124c05750565b60018160048111156124d4576124d4613114565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613114565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613114565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613114565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eb6565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130d8565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061312a565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b81526004016106249190613146565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff80821115612aa357600080fd5b818901915089601f830112612ab757600080fd5b813581811115612ac957612ac9612a1e565b604051601f8201601f19908116603f01168101908382118183101715612af157612af1612a1e565b816040528281528c6020848701011115612b0a57600080fd5b8260208601602083013760006020848301015280955050505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5057600080fd5b8235612b5b816129d3565b91506020830135612b6b81612b2f565b809150509250929050565b600060208284031215612b8857600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bac57600080fd5b8235612bb7816129d3565b91506020830135612b6b816129d3565b600080600060608486031215612bdc57600080fd5b8335612be7816129d3565b92506020840135612bf7816129d3565b929592945050506040919091013590565b604080825283519082018190526000906020906060840190828701845b82811015612c4a5781516001600160a01b031684529284019290840190600101612c25565b5050508381038285015284518082528583019183019060005b81811015612c7f57835183529284019291840191600101612c63565b5090979650505050505050565b60008083601f840112612c9e57600080fd5b50813567ffffffffffffffff811115612cb657600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612ce457600080fd5b823567ffffffffffffffff811115612cfb57600080fd5b612d0785828601612c8c565b90969095509350505050565b60008060008060808587031215612d2957600080fd5b8435612d34816129d3565b93506020850135612d44816129d3565b92506040850135612d54816129d3565b9396929550929360600135925050565b60008060008060808587031215612d7a57600080fd5b8435612d85816129d3565b93506020850135612d95816129d3565b9250604085013591506060850135612dac816129d3565b939692955090935050565b60008060408385031215612dca57600080fd5b8235612dd5816129d3565b946020939093013593505050565b60008060008060408587031215612df957600080fd5b843567ffffffffffffffff80821115612e1157600080fd5b612e1d88838901612c8c565b90965094506020870135915080821115612e3657600080fd5b50612e4387828801612c8c565b95989497509550505050565b600060208284031215612e6157600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612ec857600080fd5b8151611d4581612b2f565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561300b57600080fd5b8135611d4581612b2f565b60005b83811015613031578181015183820152602001613019565b50506000910152565b60008151808452613052816020860160208601613016565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461303a565b60006020828403121561309157600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130bb57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130c2565b818103818111156121e6576121e66130c2565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161313c818460208701613016565b9190910192915050565b602081526000611d45602083018461303a56fea26469706673582212208f93c215613625117caec9113257c8859da3eb85d10c3f4716517f3a64d0f80c64736f6c63430008180033","gas_used":2564235,"gas_limit":3410165,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b3d565b610a64565b61021e610a9c565b61032461030f366004612b76565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612b99565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bc7565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c08565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612cd1565b610d50565b61021e6104b1366004612d13565b610ec4565b61021e6104c4366004612d64565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612db7565b610fe1565b61021e6104fd366004612d13565b611019565b61021e610510366004612de3565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bc7565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e4f565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e6c565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eb6565b6106c15760405162461bcd60e51b815260040161062490612ed3565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f1b565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eb6565b610b245760405162461bcd60e51b815260040161062490612ed3565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f85565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612fe3565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612fe3565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f1b565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612fe3565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612fe3565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612fe3565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612fe3565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f85565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f85565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f1b565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612fe3565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612fe3565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612fe3565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612fe3565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612fe3565b90506020020160208101906113619190612ff9565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e4f565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e6c565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906117839086908690600401613066565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c4919061307f565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130a9565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130d8565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612fe3565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130eb565b815481106122e8576122e8612fe3565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612fe3565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e6130fe565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613114565b036124c05750565b60018160048111156124d4576124d4613114565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613114565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613114565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613114565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eb6565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130d8565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061312a565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b81526004016106249190613146565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff80821115612aa357600080fd5b818901915089601f830112612ab757600080fd5b813581811115612ac957612ac9612a1e565b604051601f8201601f19908116603f01168101908382118183101715612af157612af1612a1e565b816040528281528c6020848701011115612b0a57600080fd5b8260208601602083013760006020848301015280955050505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5057600080fd5b8235612b5b816129d3565b91506020830135612b6b81612b2f565b809150509250929050565b600060208284031215612b8857600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bac57600080fd5b8235612bb7816129d3565b91506020830135612b6b816129d3565b600080600060608486031215612bdc57600080fd5b8335612be7816129d3565b92506020840135612bf7816129d3565b929592945050506040919091013590565b604080825283519082018190526000906020906060840190828701845b82811015612c4a5781516001600160a01b031684529284019290840190600101612c25565b5050508381038285015284518082528583019183019060005b81811015612c7f57835183529284019291840191600101612c63565b5090979650505050505050565b60008083601f840112612c9e57600080fd5b50813567ffffffffffffffff811115612cb657600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612ce457600080fd5b823567ffffffffffffffff811115612cfb57600080fd5b612d0785828601612c8c565b90969095509350505050565b60008060008060808587031215612d2957600080fd5b8435612d34816129d3565b93506020850135612d44816129d3565b92506040850135612d54816129d3565b9396929550929360600135925050565b60008060008060808587031215612d7a57600080fd5b8435612d85816129d3565b93506020850135612d95816129d3565b9250604085013591506060850135612dac816129d3565b939692955090935050565b60008060408385031215612dca57600080fd5b8235612dd5816129d3565b946020939093013593505050565b60008060008060408587031215612df957600080fd5b843567ffffffffffffffff80821115612e1157600080fd5b612e1d88838901612c8c565b90965094506020870135915080821115612e3657600080fd5b50612e4387828801612c8c565b95989497509550505050565b600060208284031215612e6157600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612ec857600080fd5b8151611d4581612b2f565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561300b57600080fd5b8135611d4581612b2f565b60005b83811015613031578181015183820152602001613019565b50506000910152565b60008151808452613052816020860160208601613016565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461303a565b60006020828403121561309157600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130bb57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130c2565b818103818111156121e6576121e66130c2565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161313c818460208701613016565b9190910192915050565b602081526000611d45602083018461303a56fea26469706673582212208f93c215613625117caec9113257c8859da3eb85d10c3f4716517f3a64d0f80c64736f6c63430008180033","nonce":13,"gas_used":2823365},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x2b14c5","logs":[{"address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000"},"block_hash":"0xd4b95e4ec6f57d6d419c266057e9a588e0aa952c244f102815e22672412725f4","block_number":8},{"info":{"transaction_hash":"0xac1073a608bdd692f97c34a9e3a8540386b02d3b6b8c3e2623902c37b6e2d9f2","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x8f86403a4de0bb5791fa46b8e795c547942fe4cf","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x8f86403a4de0bb5791fa46b8e795c547942fe4cf","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a060405234801561001057600080fd5b5060405161207538038061207583398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b608051611f026101736000396000818161030f01528181610466015281816105bf015281816109c501526110250152611f026000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a4c565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a65565b6102a261029d366004611a7c565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa6565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61034461033f366004611a7c565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611aee565b6109b8565b6103f26103ed366004611b4b565b610e0b565b6040516101529190611bc4565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a4c565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104ac5760405162461bcd60e51b81526004016104a390611c0d565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105fc5760405162461bcd60e51b81526004016104a390611c0d565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c81565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a025760405162461bcd60e51b81526004016104a390611c0d565b6000610a30610a1936869003860160408701611cfb565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611ead83398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611ead83398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611ead83398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2e565b6040516020818303038152906040528051906020012060001c610c419190611d70565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cfb565b90611307565b610c7436899003890189611cfb565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cfb565b610cd6368a90038a0160808b01611dd7565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611ead83398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e18565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce5565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce5565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e58565b81548110610f9a57610f9a611ce5565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e58565b858581518110610fd557610fd5611ce5565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e6b565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110625760405162461bcd60e51b81526004016104a390611c0d565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce5565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e58565b8154811061121657611216611ce5565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e82565b905084826002811061154957611549611ce5565b6020020151518361155b836000611e99565b600c811061156b5761156b611ce5565b602002015284826002811061158257611582611ce5565b602002015160200151838260016115999190611e99565b600c81106115a9576115a9611ce5565b60200201528382600281106115c0576115c0611ce5565b60200201515151836115d3836002611e99565b600c81106115e3576115e3611ce5565b60200201528382600281106115fa576115fa611ce5565b6020020151516001602002015183611613836003611e99565b600c811061162357611623611ce5565b602002015283826002811061163a5761163a611ce5565b60200201516020015160006002811061165557611655611ce5565b602002015183611666836004611e99565b600c811061167657611676611ce5565b602002015283826002811061168d5761168d611ce5565b6020020151602001516001600281106116a8576116a8611ce5565b6020020151836116b9836005611e99565b600c81106116c9576116c9611ce5565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d70565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e58565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b9150602083013567ffffffffffffffff8111156119d957600080fd5b8301601f810185136119ea57600080fd5b803567ffffffffffffffff811115611a0457611a04611931565b611a17601f8201601f1916602001611970565b818152866020838501011115611a2c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208284031215611a5e57600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8f57600080fd5b611a9883611905565b946020939093013593505050565b600080600060608486031215611abb57600080fd5b611ac484611905565b9250602084013563ffffffff81168114611add57600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0557600080fd5b611b0e856118cc565b9350610100601f1982011215611b2357600080fd5b602085019250604061011f1982011215611b3c57600080fd5b50610120840190509250925092565b600080600060408486031215611b6057600080fd5b833567ffffffffffffffff811115611b7757600080fd5b8401601f81018613611b8857600080fd5b803567ffffffffffffffff811115611b9f57600080fd5b866020828401011115611bb157600080fd5b6020918201979096509401359392505050565b602080825282518282018190526000918401906040840190835b81811015611c0257835163ffffffff16835260209384019390920191600101611bde565b509095945050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b0384168152826020820152606060408201526000825180606084015260005b81811015611cc35760208186018101516080868401015201611ca6565b506000608082850101526080601f19601f830116840101915050949350505050565b634e487b7160e01b600052603260045260246000fd5b60006040828403128015611d0e57600080fd5b50611d17611947565b823581526020928301359281019290925250919050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8d57634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611da357600080fd5b611dab611947565b806040840185811115611dbd57600080fd5b845b81811015611c02578035845260209384019301611dbf565b60006080828403128015611dea57600080fd5b50611df3611947565b611dfd8484611d92565b8152611e0c8460408501611d92565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e42565b600081611e7a57611e7a611e42565b506000190190565b80820281158282048414176106ff576106ff611e42565b808201808211156106ff576106ff611e4256fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a2646970667358221220e98098f8396e49039e387b6fa81db3dc69781677ba6e4071b0b6a30889295d3664736f6c634300081b0033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c","output":"0x608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a4c565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a65565b6102a261029d366004611a7c565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa6565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b61034461033f366004611a7c565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611aee565b6109b8565b6103f26103ed366004611b4b565b610e0b565b6040516101529190611bc4565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a4c565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146104ac5760405162461bcd60e51b81526004016104a390611c0d565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146105fc5760405162461bcd60e51b81526004016104a390611c0d565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c81565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614610a025760405162461bcd60e51b81526004016104a390611c0d565b6000610a30610a1936869003860160408701611cfb565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611ead83398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611ead83398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611ead83398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2e565b6040516020818303038152906040528051906020012060001c610c419190611d70565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cfb565b90611307565b610c7436899003890189611cfb565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cfb565b610cd6368a90038a0160808b01611dd7565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611ead83398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e18565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce5565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce5565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e58565b81548110610f9a57610f9a611ce5565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e58565b858581518110610fd557610fd5611ce5565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e6b565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146110625760405162461bcd60e51b81526004016104a390611c0d565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce5565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e58565b8154811061121657611216611ce5565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e82565b905084826002811061154957611549611ce5565b6020020151518361155b836000611e99565b600c811061156b5761156b611ce5565b602002015284826002811061158257611582611ce5565b602002015160200151838260016115999190611e99565b600c81106115a9576115a9611ce5565b60200201528382600281106115c0576115c0611ce5565b60200201515151836115d3836002611e99565b600c81106115e3576115e3611ce5565b60200201528382600281106115fa576115fa611ce5565b6020020151516001602002015183611613836003611e99565b600c811061162357611623611ce5565b602002015283826002811061163a5761163a611ce5565b60200201516020015160006002811061165557611655611ce5565b602002015183611666836004611e99565b600c811061167657611676611ce5565b602002015283826002811061168d5761168d611ce5565b6020020151602001516001600281106116a8576116a8611ce5565b6020020151836116b9836005611e99565b600c81106116c9576116c9611ce5565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d70565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e58565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b9150602083013567ffffffffffffffff8111156119d957600080fd5b8301601f810185136119ea57600080fd5b803567ffffffffffffffff811115611a0457611a04611931565b611a17601f8201601f1916602001611970565b818152866020838501011115611a2c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208284031215611a5e57600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8f57600080fd5b611a9883611905565b946020939093013593505050565b600080600060608486031215611abb57600080fd5b611ac484611905565b9250602084013563ffffffff81168114611add57600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0557600080fd5b611b0e856118cc565b9350610100601f1982011215611b2357600080fd5b602085019250604061011f1982011215611b3c57600080fd5b50610120840190509250925092565b600080600060408486031215611b6057600080fd5b833567ffffffffffffffff811115611b7757600080fd5b8401601f81018613611b8857600080fd5b803567ffffffffffffffff811115611b9f57600080fd5b866020828401011115611bb157600080fd5b6020918201979096509401359392505050565b602080825282518282018190526000918401906040840190835b81811015611c0257835163ffffffff16835260209384019390920191600101611bde565b509095945050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b0384168152826020820152606060408201526000825180606084015260005b81811015611cc35760208186018101516080868401015201611ca6565b506000608082850101526080601f19601f830116840101915050949350505050565b634e487b7160e01b600052603260045260246000fd5b60006040828403128015611d0e57600080fd5b50611d17611947565b823581526020928301359281019290925250919050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8d57634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611da357600080fd5b611dab611947565b806040840185811115611dbd57600080fd5b845b81811015611c02578035845260209384019301611dbf565b60006080828403128015611dea57600080fd5b50611df3611947565b611dfd8484611d92565b8152611e0c8460408501611d92565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e42565b600081611e7a57611e7a611e42565b506000190190565b80820281158282048414176106ff576106ff611e42565b808201808211156106ff576106ff611e4256fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a2646970667358221220e98098f8396e49039e387b6fa81db3dc69781677ba6e4071b0b6a30889295d3664736f6c634300081b0033","gas_used":1613038,"gas_limit":2151154,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a4c565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a65565b6102a261029d366004611a7c565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa6565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b61034461033f366004611a7c565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611aee565b6109b8565b6103f26103ed366004611b4b565b610e0b565b6040516101529190611bc4565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a4c565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146104ac5760405162461bcd60e51b81526004016104a390611c0d565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146105fc5760405162461bcd60e51b81526004016104a390611c0d565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c81565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614610a025760405162461bcd60e51b81526004016104a390611c0d565b6000610a30610a1936869003860160408701611cfb565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611ead83398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611ead83398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611ead83398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2e565b6040516020818303038152906040528051906020012060001c610c419190611d70565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cfb565b90611307565b610c7436899003890189611cfb565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cfb565b610cd6368a90038a0160808b01611dd7565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611ead83398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e18565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce5565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce5565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e58565b81548110610f9a57610f9a611ce5565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e58565b858581518110610fd557610fd5611ce5565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e6b565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146110625760405162461bcd60e51b81526004016104a390611c0d565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce5565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e58565b8154811061121657611216611ce5565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e82565b905084826002811061154957611549611ce5565b6020020151518361155b836000611e99565b600c811061156b5761156b611ce5565b602002015284826002811061158257611582611ce5565b602002015160200151838260016115999190611e99565b600c81106115a9576115a9611ce5565b60200201528382600281106115c0576115c0611ce5565b60200201515151836115d3836002611e99565b600c81106115e3576115e3611ce5565b60200201528382600281106115fa576115fa611ce5565b6020020151516001602002015183611613836003611e99565b600c811061162357611623611ce5565b602002015283826002811061163a5761163a611ce5565b60200201516020015160006002811061165557611655611ce5565b602002015183611666836004611e99565b600c811061167657611676611ce5565b602002015283826002811061168d5761168d611ce5565b6020020151602001516001600281106116a8576116a8611ce5565b6020020151836116b9836005611e99565b600c81106116c9576116c9611ce5565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d70565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e58565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b9150602083013567ffffffffffffffff8111156119d957600080fd5b8301601f810185136119ea57600080fd5b803567ffffffffffffffff811115611a0457611a04611931565b611a17601f8201601f1916602001611970565b818152866020838501011115611a2c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208284031215611a5e57600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8f57600080fd5b611a9883611905565b946020939093013593505050565b600080600060608486031215611abb57600080fd5b611ac484611905565b9250602084013563ffffffff81168114611add57600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0557600080fd5b611b0e856118cc565b9350610100601f1982011215611b2357600080fd5b602085019250604061011f1982011215611b3c57600080fd5b50610120840190509250925092565b600080600060408486031215611b6057600080fd5b833567ffffffffffffffff811115611b7757600080fd5b8401601f81018613611b8857600080fd5b803567ffffffffffffffff811115611b9f57600080fd5b866020828401011115611bb157600080fd5b6020918201979096509401359392505050565b602080825282518282018190526000918401906040840190835b81811015611c0257835163ffffffff16835260209384019390920191600101611bde565b509095945050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b0384168152826020820152606060408201526000825180606084015260005b81811015611cc35760208186018101516080868401015201611ca6565b506000608082850101526080601f19601f830116840101915050949350505050565b634e487b7160e01b600052603260045260246000fd5b60006040828403128015611d0e57600080fd5b50611d17611947565b823581526020928301359281019290925250919050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8d57634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611da357600080fd5b611dab611947565b806040840185811115611dbd57600080fd5b845b81811015611c02578035845260209384019301611dbf565b60006080828403128015611dea57600080fd5b50611df3611947565b611dfd8484611d92565b8152611e0c8460408501611d92565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e42565b600081611e7a57611e7a611e42565b506000190190565b80820281158282048414176106ff576106ff611e42565b808201808211156106ff576106ff611e4256fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a2646970667358221220e98098f8396e49039e387b6fa81db3dc69781677ba6e4071b0b6a30889295d3664736f6c634300081b0033","nonce":44,"gas_used":1795984},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4bc084","logs":[{"address":"0x8f86403a4de0bb5791fa46b8e795c547942fe4cf","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000"},"block_hash":"0xc3a6dcac3748c6c5456194f4d0559acb3fce93bdb951a1aaf5e92d91230fcb99","block_number":6},{"info":{"transaction_hash":"0xe6912062264ab60c930b10c03ab097ecc60709d30f3cce8135383cce209f8e71","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":38666,"gas_limit":66779,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":31344,"gas_limit":58566,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x","nonce":30,"gas_used":60786},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xed72","logs":[{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000000000000000000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000002000000000000000000000000000000000000000000000000000000100000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000001000000000100000000000000"},"block_hash":"0x607eb9efb50db52a9d3d96804c25e1b98dc83a5e2438c1658ffebe9f7c9193fb","block_number":19},{"info":{"transaction_hash":"0xa6fb03d492d9055f8f211cb2cbed42c9369335b5926dbd284c310bd086df409e","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052348015600f57600080fd5b50601733601b565b606b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61069a8061007a6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212208c9b9e088f3575078e1e546bdacf514367bf3b048de9f62c408ca085a2a59c4b64736f6c634300081b0033","output":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212208c9b9e088f3575078e1e546bdacf514367bf3b048de9f62c408ca085a2a59c4b64736f6c634300081b0033","gas_used":362115,"gas_limit":494948,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212208c9b9e088f3575078e1e546bdacf514367bf3b048de9f62c408ca085a2a59c4b64736f6c634300081b0033","nonce":33,"gas_used":443273},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x6c389","logs":[{"address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000008000000000"},"block_hash":"0x0d83d6bcc44f4340929b877cce749f031f3256c67cb5780bcc8c3bb4ee48f57c","block_number":1},{"info":{"transaction_hash":"0xa7204669c318eb0baf1e98348c0ef6a1156ae7d409198ca1e837bc121d9fecec","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x851356ae760d987e095750cceb3bc6014560891c","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x851356ae760d987e095750cceb3bc6014560891c","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","nonce":36,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x117e5c","logs":[{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00000000000000000000000000000000400400000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000010000000000000400000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x8fddef1a860c2edab45f730bdb41cae8101050bbae2a8da34458d9925f75346e","block_number":3},{"info":{"transaction_hash":"0xb030f2d4fab25e0e55fbea021823b7c402506436d336bb86ae31f21a36dbe5a7","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":9,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8be1b","logs":[{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000002000000000000000000000008000000000000000000000000000000000000000000020000000000000000000000000040000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xa9a73f22a7ec019b54a5a4d43296b03a0d61022763f5fdd971698f75d1b29f0a","block_number":5},{"info":{"transaction_hash":"0x349f5791ce5597d671bfc13b1e0237de0732d456e59400e3416a0fda4c213de9","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b5060405161074538038061074583398101604081905261002f91610259565b60005b825181101561006d576100658382815181106100505761005061032f565b6020026020010151600161007e60201b60201c565b600101610032565b5061007781610150565b5050610345565b6001600160a01b0382166100ef5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b60648201526084015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b0381166101be5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b60648201526084016100e6565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b038116811461025457600080fd5b919050565b6000806040838503121561026c57600080fd5b82516001600160401b038082111561028357600080fd5b818501915085601f83011261029757600080fd5b81516020828211156102ab576102ab610227565b8160051b604051601f19603f830116810181811086821117156102d0576102d0610227565b6040529283528183019350848101820192898411156102ee57600080fd5b948201945b83861015610313576103048661023d565b855294820194938201936102f3565b9650610322905087820161023d565b9450505050509250929050565b634e487b7160e01b600052603260045260246000fd5b6103f1806103546000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122082d0bf2d943ad14055e4e88fc955638b565f43d854afdcd3d6cd966fe8c2201a64736f6c634300081800330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000003000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122082d0bf2d943ad14055e4e88fc955638b565f43d854afdcd3d6cd966fe8c2201a64736f6c63430008180033","gas_used":254172,"gas_limit":355454,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122082d0bf2d943ad14055e4e88fc955638b565f43d854afdcd3d6cd966fe8c2201a64736f6c63430008180033","nonce":1,"gas_used":338170},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x528fa","logs":[{"address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},{"address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},{"address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},{"address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","topics":["0x06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"}],"logsBloom":"0x00000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000004801000000000000000"},"block_hash":"0x2f1135f0c94511e50fccb0d74f654cdefcbe7279ce4484af1b28db7826c62bbf","block_number":2},{"info":{"transaction_hash":"0x3e4e0ce43145a9e80b5f0dad88697d66d94d83368a0f92a5c79bf7274d95f592","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x959922be3caee4b8cd9a407cc3ac1c251c2007b1","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x959922be3caee4b8cd9a407cc3ac1c251c2007b1","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b50604051610efe380380610efe83398101604081905261002f9161004e565b5050610088565b6001600160a01b038116811461004b57600080fd5b50565b6000806040838503121561006157600080fd5b825161006c81610036565b602084015190925061007d81610036565b809150509250929050565b610e67806100976000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd5565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d13565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d60565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d7d565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610dc7565b6105b35760405162461bcd60e51b815260040161051990610de9565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610dc7565b61070d5760405162461bcd60e51b815260040161051990610de9565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d60565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d7d565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff80821115610c8b57600080fd5b818501915085601f830112610c9f57600080fd5b813581811115610cae57600080fd5b8660208260051b8501011115610cc357600080fd5b60209290920196919550909350505050565b600080600060608486031215610cea57600080fd5b8335610cf581610af7565b9250610d0360208501610b0c565b9150604084013590509250925092565b60008060008060808587031215610d2957600080fd5b8435610d3481610af7565b9350610d4260208601610b0c565b9250610d5060408601610b0c565b9396929550929360600135925050565b600060208284031215610d7257600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dd957600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea264697066735822122073763b5180077a8bc6ac9f9f13d1ff53a2202a0e325b92566fd1ff7df689217864736f6c63430008180033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd5565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d13565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d60565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d7d565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610dc7565b6105b35760405162461bcd60e51b815260040161051990610de9565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610dc7565b61070d5760405162461bcd60e51b815260040161051990610de9565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d60565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d7d565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff80821115610c8b57600080fd5b818501915085601f830112610c9f57600080fd5b813581811115610cae57600080fd5b8660208260051b8501011115610cc357600080fd5b60209290920196919550909350505050565b600080600060608486031215610cea57600080fd5b8335610cf581610af7565b9250610d0360208501610b0c565b9150604084013590509250925092565b60008060008060808587031215610d2957600080fd5b8435610d3481610af7565b9350610d4260208601610b0c565b9250610d5060408601610b0c565b9396929550929360600135925050565b600060208284031215610d7257600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dd957600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea264697066735822122073763b5180077a8bc6ac9f9f13d1ff53a2202a0e325b92566fd1ff7df689217864736f6c63430008180033","gas_used":738493,"gas_limit":993926,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd5565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d13565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d60565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d7d565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610dc7565b6105b35760405162461bcd60e51b815260040161051990610de9565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610dc7565b61070d5760405162461bcd60e51b815260040161051990610de9565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d60565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d7d565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff80821115610c8b57600080fd5b818501915085601f830112610c9f57600080fd5b813581811115610cae57600080fd5b8660208260051b8501011115610cc357600080fd5b60209290920196919550909350505050565b600080600060608486031215610cea57600080fd5b8335610cf581610af7565b9250610d0360208501610b0c565b9150604084013590509250925092565b60008060008060808587031215610d2957600080fd5b8435610d3481610af7565b9350610d4260208601610b0c565b9250610d5060408601610b0c565b9396929550929360600135925050565b600060208284031215610d7257600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dd957600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea264697066735822122073763b5180077a8bc6ac9f9f13d1ff53a2202a0e325b92566fd1ff7df689217864736f6c63430008180033","nonce":16,"gas_used":852501},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xd0215","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x3b59b970eb7bc45e575508d12aeb8864040232a3ea40fa4948cbb06dda6d03ec","block_number":10},{"info":{"transaction_hash":"0x046411743d2c08a8f69f7117e4aed15eb84999f401e950cafac8436c9d2c04d8","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":4371,"gas_limit":16304,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":31,"gas_used":25803},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x64cb","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x4bb7d4d7274a71c12835a9908de46427fa0aeb6b6a094449480e3e1ca9f10fed","block_number":20},{"info":{"transaction_hash":"0x871e7f0a2ec684bd5ac037523564f5803521a08648d94b944eb7379a310cbe83","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xf5059a5d33d5853360d16c683c16e67980206f36","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xf5059a5d33d5853360d16c683c16e67980206f36","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","nonce":37,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8bf2e","logs":[{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000c00010000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000400000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xc49f28e9848bce1cddad6c5fb3fc98de92b15ad335e6fefe8442f7c3aecc4225","block_number":4},{"info":{"transaction_hash":"0x27ff860d43af616478665f6b796d139e3ccaa80150ea832e0abe67638df48560","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x09635f643e140090a9a8dcd712ed6285858cebef","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x09635f643e140090a9a8dcd712ed6285858cebef","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b50610528806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047c565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d1565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b9150604084013590509250925092565b60006020828403121561048e57600080fd5b610497826103fa565b9392505050565b600080604083850312156104b157600080fd5b6104ba836103fa565b91506104c8602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122020d7e8b980aa0c2b46b040d513e5ae1f916c9610cc2589a32d3485f141c4d93e64736f6c63430008180033","output":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047c565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d1565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b9150604084013590509250925092565b60006020828403121561048e57600080fd5b610497826103fa565b9392505050565b600080604083850312156104b157600080fd5b6104ba836103fa565b91506104c8602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122020d7e8b980aa0c2b46b040d513e5ae1f916c9610cc2589a32d3485f141c4d93e64736f6c63430008180033","gas_used":264306,"gas_limit":365714,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047c565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d1565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b9150604084013590509250925092565b60006020828403121561048e57600080fd5b610497826103fa565b9392505050565b600080604083850312156104b157600080fd5b6104ba836103fa565b91506104c8602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122020d7e8b980aa0c2b46b040d513e5ae1f916c9610cc2589a32d3485f141c4d93e64736f6c63430008180033","nonce":27,"gas_used":338400},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x529e0","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x76fa2a4c141ce999c8fca25f6cdd9760ea421baefe3e3b64a8bfd31c0e350abc","block_number":17},{"info":{"transaction_hash":"0x5d7261cd89ce0dce6deaa0108c6defbdae0b2749f8b2ab422590c912bbd7a823","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6106948061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","output":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","gas_used":360915,"gas_limit":493364,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","nonce":0,"gas_used":441993},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x6be89","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x569d170492b4479404a15081b9c0586140961739eee97878acb1017512056a08","block_number":1},{"info":{"transaction_hash":"0xd89622c01e915286913ae41dde34ea10422f2db5e37d325b526b69190e2d349a","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000010422bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":142372,"gas_limit":205727,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef286000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000010422bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":135635,"gas_limit":195929,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","address":"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x22bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":122351,"gas_limit":180008,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":19,"gas_used":166180},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x28924","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0"],"data":"0x"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400000000000000000c00000000000000000000000000000000000000000080000000000000000100000000000000001000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800000004000000000000040000000000400000000108000000000000000000000000000000000080000000000000000000000000000000040000000002000400000000000000000000000000000000000000002020400000200000000000040000000000002008000000000000000020000000000000000000000000000000000000000000000000000000002000400000"},"block_hash":"0xdc661eb62f3503115532a4a4ebf9dbb29830a7f54b0435e7188a418d1ac7faf1","block_number":12}],"historical_states":null} \ No newline at end of file +{"block":{"number":"0xe","coinbase":"0x0000000000000000000000000000000000000000","timestamp":"0x6706bcff","gas_limit":"0x1c9c380","basefee":"0xd1ef515","difficulty":"0x0","prevrandao":"0x629aace46dc6a598d6e450ce34299c3f712658c618a8cfb95d9fc7d00b4fad98","blob_excess_gas_and_price":{"excess_blob_gas":0,"blob_gasprice":1}},"accounts":{"0x0000000000000000000000000000000000000000":{"nonce":0,"balance":"0x35bc1cd","code":"0x","storage":{}},"0x0165878a594ca255338adfa4d48449f69242eb8f":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000066":"0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000000000000000000c9":"0x94af000f6f71feb2b8401e668d95fd208038580e89d240930f90ba827aa34858","0x00000000000000000000000000000000000000000000000000000000000000cb":"0x000003e80000000000001c2018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad4","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0x09635f643e140090a9a8dcd712ed6285858cebef":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047c565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d1565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b9150604084013590509250925092565b60006020828403121561048e57600080fd5b610497826103fa565b9392505050565b600080604083850312156104b157600080fd5b6104ba836103fa565b91506104c8602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122020d7e8b980aa0c2b46b040d513e5ae1f916c9610cc2589a32d3485f141c4d93e64736f6c63430008180033","storage":{}},"0x0b306bf915c4d645ff596e518faf3f9669b97016":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613257565b610caa565b61033d61049a3660046132b7565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e3565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b16105143660046132fe565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613321565b611469565b6102b1610552366004613356565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613356565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc36600461339f565b61156b565b61033d6106cf366004613412565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342d565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344a565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613494565b61093b5760405162461bcd60e51b815260040161089e906134b1565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134f9565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110610b8957610b89613567565b9050602002810190610b9b919061357d565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c3565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a908390613709565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371c565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134f9565b600260975403610cf45760405162461bcd60e51b815260040161089e90613530565b6002609755600060ca610d0a60208601866132e3565b63ffffffff1681548110610d2057610d20613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a088018861372f565b90508110156110445736610e4f60e0890189613780565b83818110610e5f57610e5f613567565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137ca565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134f9565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137dd565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613494565b6113ea5760405162461bcd60e51b815260040161089e906134b1565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e3565b63ffffffff168154811061149457611494613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e5600184613801565b63ffffffff16815481106116fb576116fb613567565b906000526020600020906002020160000154036117245761171d600182613801565b9392505050565b8061172e8161381e565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342d565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344a565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134f9565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110611a3257611a32613567565b9050602002810190611a44919061357d565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c3565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac3908390613709565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371c565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613780565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e3565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e3565b611eda9190613854565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e3565b611fb59190613854565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e3565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137ca565b111580156120ec57506120bc60808201606083016132e3565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d001642613709565b6121a660808301606084016132e3565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613780565b905081101561245357600061224d8480613780565b8381811061225d5761225d613567565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613494565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c083018361372f565b905061255e60a084018461372f565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613780565b905061260460c084018461372f565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e3565b6126af6040860186613877565b86606001612b77565b60005b6126c860a084018461372f565b90508110156124535761276260808401356126e660a086018661372f565b848181106126f6576126f6613567565b905060200201602081019061270b91906132e3565b61271860c087018761372f565b8581811061272857612728613567565b905060200281019061273a9190613877565b61274760e0890189613780565b8781811061275757612757613567565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613494565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138be565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138be565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f6565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613908565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613908565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b613092602082613709565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e919061391c565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff808211156131fa57600080fd5b818501915085601f83011261320e57600080fd5b81358181111561321d57600080fd5b8660208260051b850101111561323257600080fd5b60209290920196919550909350505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326a57600080fd5b823567ffffffffffffffff81111561328157600080fd5b61328d85828601613244565b9250506020830135613149816130db565b803563ffffffff811681146132b257600080fd5b919050565b600080604083850312156132ca57600080fd5b823591506132da6020840161329e565b90509250929050565b6000602082840312156132f557600080fd5b61171d8261329e565b60006020828403121561331057600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333357600080fd5b813567ffffffffffffffff81111561334a57600080fd5b612e4b84828501613244565b6000806040838503121561336957600080fd5b8235613374816130db565b946020939093013593505050565b80356132b2816130db565b803561ffff811681146132b257600080fd5b60008060008060008060c087890312156133b857600080fd5b86356133c3816130db565b955060208701356133d3816130db565b94506040870135935060608701356133ea816130db565b92506133f86080880161329e565b915061340660a0880161338d565b90509295509295509295565b60006020828403121561342457600080fd5b61171d8261338d565b60006020828403121561343f57600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a657600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359357600080fd5b9190910192915050565b818352600060208085019450826000805b868110156136025782356135c1816130db565b6001600160a01b03168852828401356bffffffffffffffffffffffff81168082146135ea578384fd5b898601525060409788019792909201916001016135ae565b50959695505050505050565b60008135601e1983360301811261362457600080fd5b820160208101903567ffffffffffffffff81111561364157600080fd5b8060061b360382131561365357600080fd5b60a0855261366560a08601828461359d565b91505061367460208401613382565b6001600160a01b03166020850152604083810135908501526136986060840161329e565b63ffffffff1660608501526136af6080840161329e565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136ea606083018461360e565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f3565b60208152600061171d602083018461360e565b6000808335601e1984360301811261374657600080fd5b83018035915067ffffffffffffffff82111561376157600080fd5b6020019150600581901b360382131561377957600080fd5b9250929050565b6000808335601e1984360301811261379757600080fd5b83018035915067ffffffffffffffff8211156137b257600080fd5b6020019150600681901b360382131561377957600080fd5b81810381811115610a7757610a776136f3565b63ffffffff8181168382160190808211156137fa576137fa6136f3565b5092915050565b63ffffffff8281168282160390808211156137fa576137fa6136f3565b600063ffffffff821680613834576138346136f3565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061386b5761386b61383e565b92169190910692915050565b6000808335601e1984360301811261388e57600080fd5b83018035915067ffffffffffffffff8211156138a957600080fd5b60200191503681900382131561377957600080fd5b6000826138cd576138cd61383e565b500490565b60005b838110156138ed5781810151838201526020016138d5565b50506000910152565b600082516135938184602087016138d2565b6000826139175761391761383e565b500690565b602081526000825180602084015261393b8160408501602087016138d2565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a24fa288bd4bdcb1a7a813fb6a838dbea7b30eebacde1df7b8b1ffae0b140b2b64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b3d565b610a64565b61021e610a9c565b61032461030f366004612b76565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612b99565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bc7565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c08565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612cd1565b610d50565b61021e6104b1366004612d13565b610ec4565b61021e6104c4366004612d64565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612db7565b610fe1565b61021e6104fd366004612d13565b611019565b61021e610510366004612de3565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bc7565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e4f565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e6c565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eb6565b6106c15760405162461bcd60e51b815260040161062490612ed3565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f1b565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eb6565b610b245760405162461bcd60e51b815260040161062490612ed3565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f85565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612fe3565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612fe3565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f1b565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612fe3565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612fe3565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612fe3565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612fe3565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f85565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f85565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f1b565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612fe3565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612fe3565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612fe3565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612fe3565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612fe3565b90506020020160208101906113619190612ff9565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e4f565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e6c565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906117839086908690600401613066565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c4919061307f565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130a9565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130d8565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612fe3565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130eb565b815481106122e8576122e8612fe3565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612fe3565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e6130fe565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613114565b036124c05750565b60018160048111156124d4576124d4613114565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613114565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613114565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613114565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eb6565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130d8565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061312a565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b81526004016106249190613146565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff80821115612aa357600080fd5b818901915089601f830112612ab757600080fd5b813581811115612ac957612ac9612a1e565b604051601f8201601f19908116603f01168101908382118183101715612af157612af1612a1e565b816040528281528c6020848701011115612b0a57600080fd5b8260208601602083013760006020848301015280955050505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5057600080fd5b8235612b5b816129d3565b91506020830135612b6b81612b2f565b809150509250929050565b600060208284031215612b8857600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bac57600080fd5b8235612bb7816129d3565b91506020830135612b6b816129d3565b600080600060608486031215612bdc57600080fd5b8335612be7816129d3565b92506020840135612bf7816129d3565b929592945050506040919091013590565b604080825283519082018190526000906020906060840190828701845b82811015612c4a5781516001600160a01b031684529284019290840190600101612c25565b5050508381038285015284518082528583019183019060005b81811015612c7f57835183529284019291840191600101612c63565b5090979650505050505050565b60008083601f840112612c9e57600080fd5b50813567ffffffffffffffff811115612cb657600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612ce457600080fd5b823567ffffffffffffffff811115612cfb57600080fd5b612d0785828601612c8c565b90969095509350505050565b60008060008060808587031215612d2957600080fd5b8435612d34816129d3565b93506020850135612d44816129d3565b92506040850135612d54816129d3565b9396929550929360600135925050565b60008060008060808587031215612d7a57600080fd5b8435612d85816129d3565b93506020850135612d95816129d3565b9250604085013591506060850135612dac816129d3565b939692955090935050565b60008060408385031215612dca57600080fd5b8235612dd5816129d3565b946020939093013593505050565b60008060008060408587031215612df957600080fd5b843567ffffffffffffffff80821115612e1157600080fd5b612e1d88838901612c8c565b90965094506020870135915080821115612e3657600080fd5b50612e4387828801612c8c565b95989497509550505050565b600060208284031215612e6157600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612ec857600080fd5b8151611d4581612b2f565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561300b57600080fd5b8135611d4581612b2f565b60005b83811015613031578181015183820152602001613019565b50506000910152565b60008151808452613052816020860160208601613016565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461303a565b60006020828403121561309157600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130bb57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130c2565b818103818111156121e6576121e66130c2565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161313c818460208701613016565b9190910192915050565b602081526000611d45602083018461303a56fea26469706673582212208f93c215613625117caec9113257c8859da3eb85d10c3f4716517f3a64d0f80c64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x14dc79964da2c08b23698b3d3cc7ca32193d9955":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x15d34aaf54267db7d7c367839aaf71a00a2c6a65":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8":{"nonce":1,"balance":"0xde0b6b3a7640000","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000000000000000000000000000000000000000000cb":"0x00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d","0x8381bda9e63c8f87d23ed12b247ddf76dabbcf462f387619b957f4bfb071aada":"0x0000000000000000000000000000000000000000000000000de0b6b3a7640000","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}},"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000066":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000097":"0x0000000000000000000000000000000000000000000000000000000000000000","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0x23618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063a69df4b51161006f578063a69df4b5146103c0578063a7d31809146103d5578063c0c53b8b146103f5578063c891091314610415578063f2fde38b1461046c578063f83d08ba1461048c57600080fd5b8063715018a61461034257806373e289d0146103575780638456cb591461036d5780638da5cb5b14610382578063953ef807146103a057600080fd5b80634d5431ea116100f25780634d5431ea146102865780634f1ef286146102bf57806352d1902d146102d257806358b96e27146102e75780635c975abb1461031f57600080fd5b806317d89c4e146101ad5780632df4e21e146101f95780632e1a7d4d1461022f5780633659cfe6146102515780633f4ba83a1461027157600080fd5b366101a85733600090815260fd60205260408120805434929061015290849061154c565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709061019e9034815260200190565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101e66101c8366004611574565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561020557600080fd5b506101e6610214366004611574565b6001600160a01b0316600090815260fd602052604090205490565b34801561023b57600080fd5b5061024f61024a366004611591565b6104a1565b005b34801561025d57600080fd5b5061024f61026c366004611574565b6105de565b34801561027d57600080fd5b5061024f6106bd565b34801561029257600080fd5b506101e66102a1366004611574565b6001600160a01b0316600090815260fd602052604090206001015490565b61024f6102cd3660046115c0565b6106cf565b3480156102de57600080fd5b506101e661079f565b3480156102f357600080fd5b5060fc54610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b34801561032b57600080fd5b5060655460ff1660405190151581526020016101f0565b34801561034e57600080fd5b5061024f610852565b34801561036357600080fd5b506101e6610e1081565b34801561037957600080fd5b5061024f610864565b34801561038e57600080fd5b506033546001600160a01b0316610307565b3480156103ac57600080fd5b5060fb54610307906001600160a01b031681565b3480156103cc57600080fd5b5061024f610874565b3480156103e157600080fd5b5061024f6103f03660046116d0565b61090b565b34801561040157600080fd5b5061024f61041036600461178f565b610b9f565b34801561042157600080fd5b50610451610430366004611574565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f0565b34801561047857600080fd5b5061024f610487366004611574565b610de9565b34801561049857600080fd5b5061024f610e5f565b6104a9610ed5565b33600090815260fd6020526040902080548211156104ec5780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105005750428160010154115b1561052d576001810154604051635f6e272d60e11b815260048101919091524260248201526044016104e3565b8181600001600082825461054191906117da565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f193505050501580156105a4573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036106265760405162461bcd60e51b81526004016104e3906117ed565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b031661066f600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146106955760405162461bcd60e51b81526004016104e390611839565b61069e81610f1b565b604080516000808252602082019092526106ba91839190610f23565b50565b6106c5611093565b6106cd6110ed565b565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036107175760405162461bcd60e51b81526004016104e3906117ed565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b0316610760600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146107865760405162461bcd60e51b81526004016104e390611839565b61078f82610f1b565b61079b82826001610f23565b5050565b6000306001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3161461083f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e3565b50600080516020611a0683398151915290565b61085a611093565b6106cd600061113f565b61086c611093565b6106cd611191565b61087c610ed5565b33600090815260fd602052604081205490036108ad5760405163b38340cf60e01b81523360048201526024016104e3565b6108b9610e104261154c565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed8439161090191815260200190565b60405180910390a2565b60fc546001600160a01b03163314610938576040516302a5785160e31b81523360048201526024016104e3565b610940610ed5565b83600081900361096357604051630c43ac2960e41b815260040160405180910390fd5b82600003610984576040516351d432c560e11b815260040160405180910390fd5b8361098f8285611885565b116109c1578361099f8285611885565b604051637899ec7160e01b8152600481019290925260248201526044016104e3565b60005b818163ffffffff161015610aa257600087878363ffffffff168181106109ec576109ec61189c565b9050602002016020810190610a019190611574565b6001600160a01b038116600090815260fd60205260409020805491925090861115610a5b578054604051634f779ceb60e01b81526001600160a01b03841660048201526024810191909152604481018790526064016104e3565b600281018054906000610a6d836118b2565b919050555085816000016000828254610a8691906117da565b9250508190555050508080610a9a906118cb565b9150506109c4565b5060fb5460405163d66eaabd60e01b81526001600160a01b039091169063d66eaabd908690610adb908d908d908d9089906004016118ee565b6000604051808303818588803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b5050505050887f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375884604051610b3f91815260200190565b60405180910390a260fc546001600160a01b03166108fc85610b618487611885565b610b6b91906117da565b6040518115909202916000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015610bbf5750600054600160ff909116105b80610bd95750303b158015610bd9575060005460ff166001145b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e3565b6000805460ff191660011790558015610c5f576000805461ff0019166101001790555b6001600160a01b038416610cae57604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b60448201526064016104e3565b6001600160a01b038316610d0557604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e657200000000000060448201526064016104e3565b6001600160a01b038216610d4c57604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b60448201526064016104e3565b610d546111ce565b610d5c6111fd565b610d64611224565b610d6d8361113f565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610de3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610df1611093565b6001600160a01b038116610e565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6106ba8161113f565b610e67610ed5565b33600090815260fd60205260408120549003610e985760405163366095e160e11b81523360048201526024016104e3565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106cd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e3565b6106ba611093565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5b57610f5683611253565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb5575060408051601f3d908101601f19168201909252610fb29181019061192e565b60015b6110185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e3565b600080516020611a0683398151915281146110875760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e3565b50610f568383836112ef565b6033546001600160a01b031633146106cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e3565b6110f5611314565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611199610ed5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111223390565b600054610100900460ff166111f55760405162461bcd60e51b81526004016104e390611947565b6106cd61135d565b600054610100900460ff166106cd5760405162461bcd60e51b81526004016104e390611947565b600054610100900460ff1661124b5760405162461bcd60e51b81526004016104e390611947565b6106cd61138d565b6001600160a01b0381163b6112c05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e3565b600080516020611a0683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6112f8836113c0565b6000825111806113055750805b15610f5657610de38383611400565b60655460ff166106cd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e3565b600054610100900460ff166113845760405162461bcd60e51b81526004016104e390611947565b6106cd3361113f565b600054610100900460ff166113b45760405162461bcd60e51b81526004016104e390611947565b6065805460ff19169055565b6113c981611253565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6114685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104e3565b600080846001600160a01b03168460405161148391906119b6565b600060405180830381855af49150503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50915091506114eb8282604051806060016040528060278152602001611a26602791396114f6565b925050505b92915050565b6060831561150557508161152f565b8251156115155782518084602001fd5b8160405162461bcd60e51b81526004016104e391906119d2565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156114f0576114f0611536565b6001600160a01b03811681146106ba57600080fd5b60006020828403121561158657600080fd5b813561152f8161155f565b6000602082840312156115a357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115d357600080fd5b82356115de8161155f565b9150602083013567ffffffffffffffff808211156115fb57600080fd5b818501915085601f83011261160f57600080fd5b813581811115611621576116216115aa565b604051601f8201601f19908116603f01168101908382118183101715611649576116496115aa565b8160405282815288602084870101111561166257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f84011261169657600080fd5b50813567ffffffffffffffff8111156116ae57600080fd5b6020830191508360208260051b85010111156116c957600080fd5b9250929050565b60008060008060008060008060c0898b0312156116ec57600080fd5b88359750602089013567ffffffffffffffff8082111561170b57600080fd5b818b0191508b601f83011261171f57600080fd5b81358181111561172e57600080fd5b8c602082850101111561174057600080fd5b6020830199508098505060408b013591508082111561175e57600080fd5b5061176b8b828c01611684565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b6000806000606084860312156117a457600080fd5b83356117af8161155f565b925060208401356117bf8161155f565b915060408401356117cf8161155f565b809150509250925092565b818103818111156114f0576114f0611536565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820281158282048414176114f0576114f0611536565b634e487b7160e01b600052603260045260246000fd5b6000600182016118c4576118c4611536565b5060010190565b600063ffffffff8083168181036118e4576118e4611536565b6001019392505050565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561194057600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156119ad578181015183820152602001611995565b50506000910152565b600082516119c8818460208701611992565b9190910192915050565b60208152600082518060208401526119f1816040850160208701611992565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e6ad2eed1ecf7ce82da9919d74f91b18da2f843c4e01e2d1ecb23ce863370e2964736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x4e59b44847b379578588920ca78fbf26c0b4956c":{"nonce":0,"balance":"0x0","code":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3","storage":{}},"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e6103393660046143e3565b610940565b005b61036061034e366004614424565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461444f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144ac565b610b5e565b61033e6103ea3660046145b0565b610b8a565b61033e6103fd366004614424565b610c34565b61033e6104103660046144ac565b610c41565b6103606104233660046144ac565b609f6020526000908152604090205481565b6103606104433660046144ac565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614424565b610cf4565b61049461047f366004614424565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614600565b610e31565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614633565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144ac565b610ec2565b6103b1610541366004614424565b610eeb565b61033e6105543660046144ac565b610f77565b61033e6105673660046144ac565b610f88565b6103b17f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e881565b6104946105a13660046144ac565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144ac565b610f99565b60405161036a919061464e565b61033e6105ed3660046146a6565b611018565b6106056106003660046144ac565b6113ee565b60405161036a9190614749565b61033e611462565b610494610628366004614633565b6001805460ff9092161b9081161490565b61033e6106473660046147ce565b61152e565b600154610360565b6103b17f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b6103b1610689366004614424565b611588565b6103b17f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b61033e6106c3366004614802565b6115b2565b61033e611707565b6103606106de3660046148b9565b61171b565b6103866106f1366004614424565b611765565b6000546103b1906201000090046001600160a01b031681565b6103b1611770565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614a57565b611789565b6103b17f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614b50565b611aa2565b61036060a05481565b6107c66107c1366004614bf8565b611c07565b60405161036a9190614c9d565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614ce7565b611cb6565b609c54610360565b61033e610823366004614dcd565b611d1c565b61033e610836366004614f8a565b611d2f565b6108aa610849366004614633565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144ac565b611fef565b61033e6108ff366004614424565b612065565b6109336109123660046144ac565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a919061505e565b6001546002906004908116036109715760405162461bcd60e51b81526004016109689061506c565b60405180910390fd5b60005b82811015610a48576000848483818110610990576109906150a3565b90506020020160208101906109a591906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614711565b6002811115610a0157610a01614711565b90525080519091506000610a14826121c1565b90506000610a2a826001600160c01b031661222c565b9050610a378585836122f8565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a716150a3565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b666123e5565b6001600160a01b0316600090815260c860205260409020805460ff19166001179055565b60013360009081526099602052604090206001015460ff166002811115610bb357610bb3614711565b14610be85760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c299084906150ff565b60405180910390a250565b610c3c6123e5565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb89190615112565b6001600160a01b0316336001600160a01b031614610ce85760405162461bcd60e51b81526004016109689061512f565b610cf181612444565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d659190615179565b610d815760405162461bcd60e51b81526004016109689061519b565b60015481811614610dfa5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c29565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e6e57610e6e6150a3565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610eca6123e5565b6001600160a01b0316600090815260c860205260409020805460ff19169055565b6040516308f6629d60e31b8152600481018290526000907f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b0316906347b314e890602401602060405180830381865afa158015610f53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190615112565b610f7f6123e5565b610cf181612549565b610f906123e5565b610cf1816125b2565b6040805180820190915260008082526020820152610ebc6110137f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de684604051602001610ff89291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061261b565b612669565b6001546002906004908116036110405760405162461bcd60e51b81526004016109689061506c565b600061108884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90508483146110c25760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b838110156113e55760008585838181106110e1576110e16150a3565b919091013560f81c91503690506000898985818110611102576111026150a3565b905060200281019061111491906151e3565b6040516379a0849160e11b815260ff8616600482015291935091507f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b03169063f341092290602401602060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a4919061522c565b63ffffffff1681146111e35760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b8281101561138a576000848483818110611203576112036150a3565b905060200201602081019061121891906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561126357611263614711565b600281111561127457611274614711565b90525080519091506000611287826121c1565b905060016001600160c01b03821660ff8b161c8116146112d45760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161131f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b5061137d83838f8f8d908e6001611336919061525f565b9261134393929190615272565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122f892505050565b50909250506001016111e7565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a2505050508060010190506110c5565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561144857611448614711565b600281111561145957611459614711565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d39190615179565b6114ef5760405162461bcd60e51b81526004016109689061519b565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6115366123e5565b609654829060ff908116908216106115795760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115838383612789565b505050565b609c818154811061159857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146115f95760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116669187908790819084018382808284376000920191909152505060965460ff1691506126f89050565b90506000611673836121c1565b905060018085015460ff16600281111561168f5761168f614711565b1480156116a457506001600160c01b03821615155b80156116c257506116c26001600160c01b0383811690831681161490565b156113e5576113e58787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b61170f6123e5565b6117196000612bbe565b565b600061175b7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a8787878787604051602001610ff89695949392919061529c565b9695505050505050565b6000610ebc826121c1565b60006117846064546001600160a01b031690565b905090565b60018054600091908116036117b05760405162461bcd60e51b81526004016109689061506c565b33600090815260c8602052604090205460ff166118015760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118395760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118453388612c10565b90506118a533828888808060200260200160405190810160405280939291908181526020016000905b8282101561189a5761188b60408302860136819003810190615324565b8152602001906001019061186e565b505050505087612d45565b60006118ec33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b90506000609760008e8e6000818110611907576119076150a3565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b909104909416928101929092528451805192945091611972576119726150a3565b602002602001015163ffffffff161115611a9357611a178d8d600081811061199c5761199c6150a3565b9050013560f81c60f81b60f81c83604001516000815181106119c0576119c06150a3565b60200260200101513385602001516000815181106119e0576119e06150a3565b60200260200101518c8c60008181106119fb576119fb6150a3565b905060400201803603810190611a119190615324565b866132e5565b611a9388886000818110611a2d57611a2d6150a3565b9050604002016020016020810190611a4591906144ac565b8e8e600090600192611a5993929190615272565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b50505050505050505050505050565b6001805460009190811603611ac95760405162461bcd60e51b81526004016109689061506c565b33600090815260c8602052604090205460ff16611b1a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b263385612c10565b90506000611b6f33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611bb757611bb76150a3565b602002602001015163ffffffff161115611bfc5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c2457611c246144c9565b604051908082528060200260200182016040528015611c4d578160200160208202803683370190505b50905060005b8351811015611cae57611c7f85858381518110611c7257611c726150a3565b60200260200101516134b4565b828281518110611c9157611c916150a3565b63ffffffff90921660209283029190910190910152600101611c53565b509392505050565b60018054600290811603611cdc5760405162461bcd60e51b81526004016109689061506c565b6115833384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b611d246123e5565b61158383838361356d565b600054610100900460ff1615808015611d4f5750600054600160ff909116105b80611d695750303b158015611d69575060005460ff166001145b611dcc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611def576000805461ff0019166101001790555b82518451148015611e01575081518351145b611e325760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e3b89612bbe565b611e45868661374f565b611e4e88612549565b611e57876125b2565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881166001600160a01b03199283161790925585548085018755850180547f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e841690831617905585549384019095559190920180547f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3690921691909316179091555b8451811015611f9e57611f96858281518110611f5557611f556150a3565b6020026020010151858381518110611f6f57611f6f6150a3565b6020026020010151858481518110611f8957611f896150a3565b602002602001015161356d565b600101611f37565b508015611bfc576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b611ff76123e5565b6001600160a01b03811661205c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610cf181612bbe565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dc9190615112565b6001600160a01b0316336001600160a01b03161461210c5760405162461bcd60e51b81526004016109689061512f565b60015419811960015419161461218a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c29565b6000818152609860205260408120548082036121e05750600092915050565b60008381526098602052604090206121f9600183615340565b81548110612209576122096150a3565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061223a8461383f565b61ffff166001600160401b03811115612255576122556144c9565b6040519080825280601f01601f19166020018201604052801561227f576020820181803683370190505b5090506000805b825182108015612297575061010081105b156122ee576001811b9350858416156122de578060f81b8383815181106122c0576122c06150a3565b60200101906001600160f81b031916908160001a9053508160010191505b6122e781615353565b9050612286565b5090949350505050565b60018260200151600281111561231057612310614711565b1461231a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816906366acfefe9061236f9088908690889060040161536c565b6020604051808303816000875af115801561238e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b2919061539c565b90506001600160c01b038116156123de576123de856123d9836001600160c01b031661222c565b612836565b5050505050565b336123ee611770565b6001600160a01b0316146117195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166124d25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ebc61262861386a565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b604080518082019091526000808252602082015260008080612699600080516020615843833981519152866153db565b90505b6126a581613991565b909350915060008051602061584383398151915282830983036126de576040805180820190915290815260208101919091529392505050565b60008051602061584383398151915260018208905061269c565b60008061270484613a13565b9050808360ff166001901b116127825760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff16600281111561286a5761286a614711565b1461289f5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b6096546000906128b390859060ff166126f8565b905060006128c0836121c1565b90506001600160c01b0382166129015760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129186001600160c01b0383811690831681161490565b61294d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129668482613b9b565b6001600160c01b038116612a355760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169063a364f4da90602401600060405180830381600087803b1580156129e657600080fd5b505af11580156129fa573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e169063f4e24fe590612a83908a908a906004016153ef565b600060405180830381600087803b158015612a9d57600080fd5b505af1158015612ab1573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816925063bd29b8cd9150612b039087908a90600401615413565b600060405180830381600087803b158015612b1d57600080fd5b505af1158015612b31573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616925063bd29b8cd9150612b839087908a90600401615413565b600060405180830381600087803b158015612b9d57600080fd5b505af1158015612bb1573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e909116906313542a4e90602401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f919061542c565b90506000819003610ebc577f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031663bf79ce588484612ce487610f99565b6040518463ffffffff1660e01b8152600401612d0293929190615445565b6020604051808303816000875af1158015612d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612782919061542c565b6020808201516000908152609a909152604090205460ff1615612d935760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612dcf5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e1a918891889188919061171b565b8351613d5c565b612e4560405180606001604052806060815260200160608152602001606081525090565b6000612e8d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90506000612e9a886121c1565b90506001600160c01b038216612edb5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f1d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612f55919061525f565b10612f8a5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612f948982613b9b565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051612fc491906150ff565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff166002811115612ffe57612ffe614711565b14613117576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff19169083600281111561305957613059614711565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169150639926ee7d906130ae908d9089906004016154b5565b600060405180830381600087803b1580156130c857600080fd5b505af11580156130dc573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e1690633fb2795290613167908d908c908c90600401615529565b600060405180830381600087803b15801561318157600080fd5b505af1158015613195573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169250632550477791506131eb908d908d908d908d9060040161554e565b6000604051808303816000875af115801561320a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261323291908101906155de565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36169062bff04d9061328f908c908c908c90600401615641565b6000604051808303816000875af11580156132ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132d6919081019061565b565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361333e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff161461337d5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690635401ed2790604401602060405180830381865afa1580156133ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341291906156f4565b905061341e8185613f16565b6001600160601b0316866001600160601b0316116134645760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b61346e8885613f3a565b6001600160601b0316816001600160601b031610611bfc5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561353c5760016134d98284615340565b6134e39190615340565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613516576135166150a3565b60009182526020909120015463ffffffff1611613534575050610ebc565b6001016134c5565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135ac5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b6135b7816001615711565b6096805460ff191660ff92909216919091179055806135d68186612789565b60405160016296b58960e01b031981526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169063ff694a77906136299084908890889060040161572a565b600060405180830381600087803b15801561364357600080fd5b505af1158015613657573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b031692506326d941f29150602401600060405180830381600087803b1580156136bf57600080fd5b505af11580156136d3573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561373b57600080fd5b505af1158015611bfc573d6000803e3d6000fd5b6000546201000090046001600160a01b031615801561377657506001600160a01b03821615155b6137f85760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261383b82612444565b5050565b6000805b8215610ebc57613854600184615340565b9092169180613862816157a6565b915050613843565b6000306001600160a01b037f0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd00161480156138c357507f0000000000000000000000000000000000000000000000000000000000007a6946145b156138ed57507fc6374306ca0c3d05fd3f0cebbec8fc4308f71679c06b0e30a95d8c9709d43dae90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f6ec8a99f0e7f9ebde7354a446dcb9423f3af9c58f386a53c59c5b384f9e82d11828401527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a9960608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615843833981519152600360008051602061584383398151915286600080516020615843833981519152888909090890506000613a07827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615843833981519152613f54565b91959194509092505050565b600061010082511115613a9c5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613aad57506000919050565b60008083600081518110613ac357613ac36150a3565b0160200151600160f89190911c81901b92505b8451811015613b9257848181518110613af157613af16150a3565b0160200151600160f89190911c1b9150828211613b865760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613ad6565b50909392505050565b60008281526098602052604081205490819003613c43576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613c5c600184615340565b81548110613c6c57613c6c6150a3565b6000918252602090912001805490915063ffffffff438116911603613cae5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613e7657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613d9c9086908690600401615413565b602060405180830381865afa158015613db9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ddd91906157c7565b6001600160e01b031916146115835760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613e8a8383613ffd565b6001600160a01b0316146115835760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f309061ffff16856157f1565b612782919061581c565b604081015160009061271090613f309061ffff16856157f1565b600080613f5f614363565b613f67614381565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fa457fe5b5082613ff25760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061400c8585614019565b91509150611cae81614087565b600080825160410361404f5760208301516040840151606085015160001a6140438782858561423d565b94509450505050614080565b8251604003614078576020830151604084015161406d86838361432a565b935093505050614080565b506000905060025b9250929050565b600081600481111561409b5761409b614711565b036140a35750565b60018160048111156140b7576140b7614711565b036141045760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561411857614118614711565b036141655760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b600381600481111561417957614179614711565b036141d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b60048160048111156141e5576141e5614711565b03610cf15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142745750600090506003614321565b8460ff16601b1415801561428c57508460ff16601c14155b1561429d5750600090506004614321565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156142f1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661431a57600060019250925050614321565b9150600090505b94509492505050565b6000806001600160ff1b0383168161434760ff86901c601b61525f565b90506143558782888561423d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f8401126143b157600080fd5b5081356001600160401b038111156143c857600080fd5b6020830191508360208260051b850101111561408057600080fd5b600080602083850312156143f657600080fd5b82356001600160401b0381111561440c57600080fd5b6144188582860161439f565b90969095509350505050565b60006020828403121561443657600080fd5b5035919050565b63ffffffff81168114610cf157600080fd5b60008060006060848603121561446457600080fd5b8335925060208401356144768161443d565b929592945050506040919091013590565b6001600160a01b0381168114610cf157600080fd5b80356144a781614487565b919050565b6000602082840312156144be57600080fd5b813561278281614487565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614501576145016144c9565b60405290565b604080519081016001600160401b0381118282101715614501576145016144c9565b604051601f8201601f191681016001600160401b0381118282101715614551576145516144c9565b604052919050565b60006001600160401b03831115614572576145726144c9565b614585601f8401601f1916602001614529565b905082815283838301111561459957600080fd5b828260208301376000602084830101529392505050565b6000602082840312156145c257600080fd5b81356001600160401b038111156145d857600080fd5b8201601f810184136145e957600080fd5b6145f884823560208401614559565b949350505050565b6000806040838503121561461357600080fd5b50508035926020909101359150565b803560ff811681146144a757600080fd5b60006020828403121561464557600080fd5b61278282614622565b815181526020808301519082015260408101610ebc565b60008083601f84011261467757600080fd5b5081356001600160401b0381111561468e57600080fd5b60208301915083602082850101111561408057600080fd5b600080600080604085870312156146bc57600080fd5b84356001600160401b03808211156146d357600080fd5b6146df8883890161439f565b909650945060208701359150808211156146f857600080fd5b5061470587828801614665565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061474557634e487b7160e01b600052602160045260246000fd5b9052565b81518152602080830151604083019161476490840182614727565b5092915050565b803561ffff811681146144a757600080fd5b60006060828403121561478f57600080fd5b6147976144df565b905081356147a48161443d565b81526147b26020830161476b565b60208201526147c36040830161476b565b604082015292915050565b600080608083850312156147e157600080fd5b6147ea83614622565b91506147f9846020850161477d565b90509250929050565b60008060006040848603121561481757600080fd5b833561482281614487565b925060208401356001600160401b0381111561483d57600080fd5b61484986828701614665565b9497909650939450505050565b60006001600160401b0382111561486f5761486f6144c9565b5060051b60200190565b60006040828403121561488b57600080fd5b614893614507565b905061489e82614622565b815260208201356148ae81614487565b602082015292915050565b600080600080600060a086880312156148d157600080fd5b85356148dc81614487565b945060208681013594506040808801356001600160401b0381111561490057600080fd5b8801601f81018a1361491157600080fd5b803561492461491f82614856565b614529565b8082825260208201915060208360061b85010192508c83111561494657600080fd5b6020840193505b8284101561496e5761495f8d85614879565b8252928401929085019061494d565b999c989b5098996060810135995060800135979650505050505050565b6000610100828403121561499e57600080fd5b50919050565b60008083601f8401126149b657600080fd5b5081356001600160401b038111156149cd57600080fd5b6020830191508360208260061b850101111561408057600080fd5b6000606082840312156149fa57600080fd5b614a026144df565b905081356001600160401b03811115614a1a57600080fd5b8201601f81018413614a2b57600080fd5b614a3a84823560208401614559565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c031215614a7657600080fd5b89356001600160401b0380821115614a8d57600080fd5b614a998d838e01614665565b909b50995060208c0135915080821115614ab257600080fd5b614abe8d838e01614665565b9099509750879150614ad38d60408e0161498b565b96506101408c0135915080821115614aea57600080fd5b614af68d838e016149a4565b90965094506101608c0135915080821115614b1057600080fd5b614b1c8d838e016149e8565b93506101808c0135915080821115614b3357600080fd5b50614b408c828d016149e8565b9150509295985092959850929598565b6000806000806000806101608789031215614b6a57600080fd5b86356001600160401b0380821115614b8157600080fd5b614b8d8a838b01614665565b90985096506020890135915080821115614ba657600080fd5b614bb28a838b01614665565b9096509450849150614bc78a60408b0161498b565b9350610140890135915080821115614bde57600080fd5b50614beb89828a016149e8565b9150509295509295509295565b60008060408385031215614c0b57600080fd5b8235614c168161443d565b91506020838101356001600160401b03811115614c3257600080fd5b8401601f81018613614c4357600080fd5b8035614c5161491f82614856565b81815260059190911b82018301908381019088831115614c7057600080fd5b928401925b82841015614c8e57833582529284019290840190614c75565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b81811015614cdb57835163ffffffff1683529284019291840191600101614cb9565b50909695505050505050565b60008060208385031215614cfa57600080fd5b82356001600160401b03811115614d1057600080fd5b61441885828601614665565b6001600160601b0381168114610cf157600080fd5b600082601f830112614d4257600080fd5b81356020614d5261491f83614856565b82815260069290921b84018101918181019086841115614d7157600080fd5b8286015b84811015614dc25760408189031215614d8e5760008081fd5b614d96614507565b8135614da181614487565b815281850135614db081614d1c565b81860152835291830191604001614d75565b509695505050505050565b600080600060a08486031215614de257600080fd5b614dec858561477d565b92506060840135614dfc81614d1c565b915060808401356001600160401b03811115614e1757600080fd5b614e2386828701614d31565b9150509250925092565b600082601f830112614e3e57600080fd5b81356020614e4e61491f83614856565b808382526020820191506060602060608602880101945087851115614e7257600080fd5b602087015b85811015614e9657614e89898261477d565b8452928401928101614e77565b5090979650505050505050565b600082601f830112614eb457600080fd5b81356020614ec461491f83614856565b8083825260208201915060208460051b870101935086841115614ee657600080fd5b602086015b84811015614dc2578035614efe81614d1c565b8352918301918301614eeb565b600082601f830112614f1c57600080fd5b81356020614f2c61491f83614856565b82815260059290921b84018101918181019086841115614f4b57600080fd5b8286015b84811015614dc25780356001600160401b03811115614f6e5760008081fd5b614f7c8986838b0101614d31565b845250918301918301614f4f565b600080600080600080600080610100898b031215614fa757600080fd5b614fb08961449c565b9750614fbe60208a0161449c565b9650614fcc60408a0161449c565b9550614fda60608a0161449c565b94506080890135935060a08901356001600160401b0380821115614ffd57600080fd5b6150098c838d01614e2d565b945060c08b013591508082111561501f57600080fd5b61502b8c838d01614ea3565b935060e08b013591508082111561504157600080fd5b5061504e8b828c01614f0b565b9150509295985092959890939650565b60208101610ebc8284614727565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156150df576020818501810151868301820152016150c3565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061278260208301846150b9565b60006020828403121561512457600080fd5b815161278281614487565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561518b57600080fd5b8151801515811461278257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e198436030181126151fa57600080fd5b8301803591506001600160401b0382111561521457600080fd5b6020019150600581901b360382131561408057600080fd5b60006020828403121561523e57600080fd5b81516127828161443d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ebc57610ebc615249565b6000808585111561528257600080fd5b8386111561528f57600080fd5b5050820193919092039150565b600060c08201888352602060018060a01b03808a166020860152604089604087015260c0606087015283895180865260e08801915060208b01955060005b81811015615304578651805160ff16845286015185168684015295850195918301916001016152da565b505060808701989098525050505060a09091019190915250949350505050565b60006040828403121561533657600080fd5b6127828383614879565b81810381811115610ebc57610ebc615249565b60006001820161536557615365615249565b5060010190565b60018060a01b038416815282602082015260606040820152600061539360608301846150b9565b95945050505050565b6000602082840312156153ae57600080fd5b81516001600160c01b038116811461278257600080fd5b634e487b7160e01b600052601260045260246000fd5b6000826153ea576153ea6153c5565b500690565b6001600160a01b03831681526040602082018190526000906145f8908301846150b9565b8281526040602082015260006145f860408301846150b9565b60006020828403121561543e57600080fd5b5051919050565b6001600160a01b0384168152610160810161546d602083018580358252602090810135910152565b615487606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e0840137825161012083015260208301516101408301526145f8565b60018060a01b03831681526040602082015260008251606060408401526154df60a08401826150b9565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906153939083018486615500565b60018060a01b038516815283602082015260606040820152600061175b606083018486615500565b600082601f83011261558757600080fd5b8151602061559761491f83614856565b8083825260208201915060208460051b8701019350868411156155b957600080fd5b602086015b84811015614dc25780516155d181614d1c565b83529183019183016155be565b600080604083850312156155f157600080fd5b82516001600160401b038082111561560857600080fd5b61561486838701615576565b9350602085015191508082111561562a57600080fd5b5061563785828601615576565b9150509250929050565b838152604060208201526000615393604083018486615500565b6000602080838503121561566e57600080fd5b82516001600160401b0381111561568457600080fd5b8301601f8101851361569557600080fd5b80516156a361491f82614856565b81815260059190911b820183019083810190878311156156c257600080fd5b928401925b828410156156e95783516156da8161443d565b825292840192908401906156c7565b979650505050505050565b60006020828403121561570657600080fd5b815161278281614d1c565b60ff8181168382160190811115610ebc57610ebc615249565b60006060820160ff8616835260206001600160601b03808716602086015260406060604087015283875180865260808801915060208901955060005b8181101561579657865180516001600160a01b031684528601518516868401529585019591830191600101615766565b50909a9950505050505050505050565b600061ffff8083168181036157bd576157bd615249565b6001019392505050565b6000602082840312156157d957600080fd5b81516001600160e01b03198116811461278257600080fd5b6001600160601b0381811683821602808216919082811461581457615814615249565b505092915050565b60006001600160601b0380841680615836576158366153c5565b9216919091049291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a26469706673582212201548f9af61e602bb8d6829508f90d0118c101ac55f6e1786ac860c8fab06071f64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x5fbdb2315678afecb367f032d93f642f64180aa3":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"}},"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000066":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000097":"0x5bc5b424ff8db9bd8202cae3beb193c946b905d8ebddb990e36a723af40eb1c4","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0x610178da211fef7d417bc0e6fed39f05609ad788":{"nonce":1,"balance":"0x0","code":"0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e40565b610ca5565b60405161020f9190614eb9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ec7565b610d0a565b60405161020f9190614ee0565b34801561041557600080fd5b506103af610424366004614ec7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f28565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614f9b565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e40565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615045565b61144e565b34801561052f57600080fd5b5061022d61053e366004615071565b61168b565b34801561054f57600080fd5b5061022d61055e36600461518f565b611863565b34801561056f57600080fd5b5061022d61057e366004615260565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615045565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610687919061535b565b156106ad5760405162461bcd60e51b81526004016106a49061537d565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615422565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a919061535b565b156108375760405162461bcd60e51b81526004016106a49061537d565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b629190615471565b8935610b7160208c018c61548a565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a6154d0565b9050602002016020810190610baf91906154e6565b8a8a86818110610bc157610bc16154d0565b9050602002810190610bd3919061548a565b8a8a88818110610be557610be56154d0565b9050602002810190610bf7919061550d565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e81565b6002811115610dae57610dae614e81565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a490615556565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615620565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f5592919061566f565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff0919061535b565b1561100d5760405162461bcd60e51b81526004016106a49061537d565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d19190615471565b8735610b7160208a018a61548a565b6000805b8881101561127a576112668b8b8b84818110611202576112026154d0565b905060200201602081019061121791906154e6565b8a358a8a8681811061122b5761122b6154d0565b905060200281019061123d919061548a565b8a8a8881811061124f5761124f6154d0565b9050602002810190611261919061550d565b6128c1565b6112709083615683565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e81565b60028111156113d9576113d9614e81565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615422565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a490615556565b6114a4633b9aca00826156f1565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca0083615705565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615719565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611919919061535b565b156119365760405162461bcd60e51b81526004016106a49061537d565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e36154d0565b60200260200101518784815181106119fd576119fd6154d0565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab7919061535b565b15611ad45760405162461bcd60e51b81526004016106a49061537d565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf69190615471565b8b35610b7160208e018e61548a565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d6154d0565b9050602002810190611c4f9190615739565b8c8c86818110611c6157611c616154d0565b9050602002810190611c73919061548a565b8c8c88818110611c8557611c856154d0565b9050602002810190611c97919061550d565b8c8c8a818110611ca957611ca96154d0565b9050602002810190611cbb919061550d565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee908390615683565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca009061575a565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea2919061535b565b15611ebf5760405162461bcd60e51b81526004016106a49061537d565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f829190615771565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c6020615784565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615719565b610d0491906157a7565b60006120fb600c6020615784565b6121068360016157cd565b6121109190615784565b610d04907f000000000000000000000000000000000000000000000000000000006059f4606157cd565b6121466003602061575a565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e81565b600281111561238757612387614e81565b90525090506000816060015160028111156123a4576123a4614e81565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e906157ed565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f83615811565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e81565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b0316612773919061575a565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b60405160029061282290849060009060200161582a565b60408051601f198184030181529082905261283c91615859565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d049190615471565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e81565b60028111156129c0576129c0614e81565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e81565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e81565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b896158da565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b6158da565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e81565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a16565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f6158da565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e81565b600281111561333857613338614e81565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d6154d0565b60200260200101519050919050565b60008160018151811061342d5761342d6154d0565b6000610d0482600281518110613469576134696154d0565b60200260200101516147cd565b61348260036002615b17565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b61353090602061575a565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d0482600781518110613469576134696154d0565b60006136fd6001600160401b03808416908516615b23565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b8051909150156116865780806020019051810190613890919061535b565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b17565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b17565b61399a60c0840160a08501615b43565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615b8b83398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b17565b613a21610100840160e08501615b43565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b17565b613aa960e0840160c08501615b43565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b856158da565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b7690602061575a565b613b80848061548a565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b90602061575a565b613c18604085018561548a565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615b8b83398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e6003602061575a565b613cab602085018561548a565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d2481602061575a565b613d31606085018561548a565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd90602061575a565b613dea608085018561548a565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615b43565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615b43565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef3608086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb8602086018661548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b7614071604087018761548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a606086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615b43565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a9614268878061548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d0482600181518110613469576134696154d0565b6000610d0482600381518110613469576134696154d0565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615719565b6001600160401b03908116825260348054849260009161441c918591166157cd565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e81565b1461448d576039805490600061448083615b60565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e81565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b03166157cd565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b91906156f1565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c3576147506002856156f1565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b600080600283516148459190615705565b90506000816001600160401b038111156148615761486161508e565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a5838361575a565b815181106148b5576148b56154d0565b6020026020010151868360026148cb919061575a565b6148d6906001614c64565b815181106148e6576148e66154d0565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f198184030181529082905261492291615859565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906149629190615471565b828281518110614974576149746154d0565b6020908102919091010152600101614890565b50614993600283615705565b91505b8115614aa95760005b82811015614a96576002826149b4838361575a565b815181106149c4576149c46154d0565b6020026020010151838360026149da919061575a565b6149e5906001614c64565b815181106149f5576149f56154d0565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a3191615859565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a719190615471565b828281518110614a8357614a836154d0565b602090810291909101015260010161499f565b50614aa2600283615705565b9150614996565b80600081518110614abc57614abc6154d0565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb89190615859565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615b77565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b0380821115614d7257600080fd5b614d7e8c838d01614ccc565b985060408b0135915080821115614d9457600080fd5b614da08c838d01614ce4565b909850965060608b0135915080821115614db957600080fd5b614dc58c838d01614ce4565b909650945060808b0135915080821115614dde57600080fd5b50614deb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e1157600080fd5b5081356001600160401b03811115614e2857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e5357600080fd5b82356001600160401b03811115614e6957600080fd5b614e7585828601614dff565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614eb557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614e97565b600060208284031215614ed957600080fd5b5035919050565b60006080820190506001600160401b03808451168352806020850151166020840152806040850151166040840152506060830151614f216060840182614e97565b5092915050565b600080600080600060608688031215614f4057600080fd5b85356001600160401b0380821115614f5757600080fd5b614f6389838a01614dff565b90975095506020880135915080821115614f7c57600080fd5b50614f8988828901614dff565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fb757600080fd5b8835614fc281614c77565b975060208901356001600160401b0380821115614fde57600080fd5b614fea8c838d01614ce4565b909950975060408b013591508082111561500357600080fd5b61500f8c838d01614ccc565b965060608b0135915080821115614db957600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615025565b6000806040838503121561505857600080fd5b823561506381615025565b946020939093013593505050565b60006020828403121561508357600080fd5b81356136fd81615025565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150c7576150c761508e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156150f5576150f561508e565b604052919050565b60006001600160401b038211156151165761511661508e565b5060051b60200190565b600082601f83011261513157600080fd5b81356020615146615141836150fd565b6150cd565b8083825260208201915060208460051b87010193508684111561516857600080fd5b602086015b84811015615184578035835291830191830161516d565b509695505050505050565b6000806000606084860312156151a457600080fd5b83356001600160401b03808211156151bb57600080fd5b818601915086601f8301126151cf57600080fd5b813560206151df615141836150fd565b82815260059290921b8401810191818101908a8411156151fe57600080fd5b948201945b8386101561522557853561521681615025565b82529482019490820190615203565b9750508701359250508082111561523b57600080fd5b5061524886828701615120565b9250506152576040850161503a565b90509250925092565b60008060008060008060008060008060c08b8d03121561527f57600080fd5b6152888b614c8c565b995060208b01356001600160401b03808211156152a457600080fd5b6152b08e838f01614ccc565b9a5060408d01359150808211156152c657600080fd5b6152d28e838f01614ce4565b909a50985060608d01359150808211156152eb57600080fd5b6152f78e838f01614ce4565b909850965060808d013591508082111561531057600080fd5b61531c8e838f01614ce4565b909650945060a08d013591508082111561533557600080fd5b506153428d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b60006020828403121561536d57600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b60006020828403121561548357600080fd5b5051919050565b6000808335601e198436030181126154a157600080fd5b8301803591506001600160401b038211156154bb57600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156154f857600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261552457600080fd5b8301803591506001600160401b0382111561553e57600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b838110156155eb5781810151838201526020016155d3565b50506000910152565b6000815180845261560c8160208601602086016155d0565b601f01601f19169290920160200192915050565b60808152600061563460808301888a6155a7565b828103602084015261564681886155f4565b9050828103604084015261565b8186886155a7565b915050826060830152979650505050505050565b602081526000614adc6020830184866155a7565b80820182811260008312801582168215821617156156a3576156a3614c4e565b505092915050565b80820260008212600160ff1b841416156156c7576156c7614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b600082615700576157006156db565b500690565b600082615714576157146156db565b500490565b6001600160401b03828116828216039080821115614f2157614f21614c4e565b6000823561017e1983360301811261575057600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160280821691908281146156a3576156a3614c4e565b60006001600160401b03808416806157c1576157c16156db565b92169190910492915050565b6001600160401b03818116838216019080821115614f2157614f21614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161582357615823614c4e565b5060010190565b6000835161583c8184602088016155d0565b6001600160801b0319939093169190920190815260100192915050565b600082516157508184602087016155d0565b600082601f83011261587c57600080fd5b81356001600160401b038111156158955761589561508e565b6158a8601f8201601f19166020016150cd565b8181528460208386010111156158bd57600080fd5b816020850160208301376000918101602001919091529392505050565b600061018082360312156158ed57600080fd5b6158f56150a4565b82356001600160401b038082111561590c57600080fd5b6159183683870161586b565b8352602085013591508082111561592e57600080fd5b61593a3683870161586b565b6020840152604085013591508082111561595357600080fd5b61595f3683870161586b565b6040840152606085013591508082111561597857600080fd5b6159843683870161586b565b6060840152608085013591508082111561599d57600080fd5b506159aa3682860161586b565b6080830152506159bc60a08401614c8c565b60a08201526159cd60c08401614c8c565b60c08201526159de60e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a2857600080fd5b81516136fd81614c77565b600181815b80851115615a6e578160001904821115615a5457615a54614c4e565b80851615615a6157918102915b93841c9390800290615a38565b509250929050565b600082615a8557506001610d04565b81615a9257506000610d04565b8160018114615aa85760028114615ab257615ace565b6001915050610d04565b60ff841115615ac357615ac3614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615af1575081810a610d04565b615afb8383615a33565b8060001904821115615b0f57615b0f614c4e565b029392505050565b60006136fd8383615a76565b8181036000831280158383131683831282161715614f2157614f21614c4e565b600060208284031215615b5557600080fd5b81356136fd81614c77565b600081615b6f57615b6f614c4e565b506000190190565b6020815260006136fd60208301846155f456fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212203a1d7654540a3a59378fcb8f0dc45727b0865d15b2835f5c00ae74b9a4b3506964736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x68b1d87f95878fe05b998f19b66f4baba5de1aed":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f0565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a13565b610aba565b34801561032357600080fd5b50610337610332366004611a13565b610b3d565b6040516101bf9190611a3f565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4d565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a13565b610f0e565b34801561043157600080fd5b50610170610440366004611a86565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acc565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b22565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b3f565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b89565b6105f65760405162461bcd60e51b815260040161055990611bab565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c09565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1c565b8154811061071d5761071d611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1c565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c45565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1c565b8154811061082757610827611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c2f565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c09565b905060008167ffffffffffffffff8111156108dd576108dd611c45565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1c565b8154811061096557610965611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c2f565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b89565b610a675760405162461bcd60e51b815260040161055990611bab565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c2f565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1c565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b22565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5b565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c09565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5b565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5b565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b22565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b3f565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1c565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1c565b8154811061163357611633611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1c565b43101561168657506116a6565b805161169b906001600160e01b031686611c1c565b9450506001016115e2565b6116b08184611c1c565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1c565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000919060409081850190868401855b828110156119e3576119d3848351611985565b92840192908501906001016119c0565b5091979650505050505050565b600060208284031215611a0257600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2657600080fd5b8235611a3181611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6057600080fd5b8235611a6b81611933565b91506020830135611a7b81611933565b809150509250929050565b60008060008060808587031215611a9c57600080fd5b8435611aa781611933565b93506020850135611ab781611933565b93969395505050506040820135916060013590565b602080825282518282015282810151604080840181905281516060850181905260009392830191849160808701905b8084101561088657611b0e828651611985565b938501936001939093019290820190611afb565b600060208284031215611b3457600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9b57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf3565b80820180821115610b3757610b37611bf3565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122008c24927adbff47182d3eb1466e14dfabce75639c9bbc81de71096db25fc9c1c64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x70997970c51812dc3a010c7d01b50e0d17dc79c8":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x70e0ba845a1a0f2da3359c97e0285013525ffc49":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f28565b60405180910390f35b6100f46100ef366004610f9c565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fcf565b610404565b005b6100f4610138366004610fea565b610528565b6101647f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fcf565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9c565b6105f5565b6040516100d8919061102d565b61018f6101e1366004610f9c565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611065565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fcf565b6108d5565b6060336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146102bb5760405162461bcd60e51b81526004016102b29061108f565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611102565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611118565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112e565b6000610368836108f4565b905061037f898461037a600185611199565b6109f1565b8085858151811061039257610392611118565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461044c5760405162461bcd60e51b81526004016102b29061108f565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611118565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611102565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611118565b6020026020010181815250506000801b8282815181106106a2576106a2611118565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611118565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146108135760405162461bcd60e51b81526004016102b29061108f565b60005b818110156108cf57600083838381811061083257610832611118565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112e565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111bd565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b600184611199565b63ffffffff168152602081019190915260400160009081205490036103b75760ff8416600090815260026020526040812090610988600184611199565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111da565b81548110610abc57610abc611118565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111da565b81548110610b0357610b03611118565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111da565b81548110610b5d57610b5d611118565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111ed565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111da565b81548110610cb457610cb4611118565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111ed565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff16611199565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff80821115610ee057600080fd5b818601915086601f830112610ef457600080fd5b813581811115610f0357600080fd5b876020828501011115610f1557600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835163ffffffff1683529284019291840191600101610f44565b50909695505050505050565b803560ff81168114610f8357600080fd5b919050565b803563ffffffff81168114610f8357600080fd5b60008060408385031215610faf57600080fd5b610fb883610f72565b9150610fc660208401610f88565b90509250929050565b600060208284031215610fe157600080fd5b6103b782610f72565b600080600060608486031215610fff57600080fd5b61100884610f72565b925061101660208501610f88565b915061102460408501610f88565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835183529284019291840191600101611049565b6000806040838503121561107857600080fd5b61108183610f72565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff8281168282160390808211156111b6576111b6611183565b5092915050565b63ffffffff8181168382160190808211156111b6576111b6611183565b818103818111156103fe576103fe611183565b6000816111fc576111fc611183565b50600019019056fea2646970667358221220af8de4d3486e0b797de225bb92c1953126cca4d69399c73bf6885ce4485dc52464736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x7969c5ed335650692bc04293b07f5bf2e7a673c0":{"nonce":1,"balance":"0x0","code":"0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212201b5f899d9100d05ffd16b26a8e94bf20e28dd085fba06b911d8ef847c76d3bf864736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955","0x0000000000000000000000000000000000000000000000000000000000000065":"0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000000000000000000fb":"0x0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","0x00000000000000000000000000000000000000000000000000000000000000fc":"0x0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3"}},"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220157b8fd2af6cc8480450ce674c8687dcbdc3c3a46aa68acd19633d494b70b35b64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x809d550fca64d94bd9f66e60752a544199cfac3d":{"nonce":1,"balance":"0x0","code":"0x6080604052600436106101fd5760003560e01c806395c6d6041161010d578063d66eaabd116100a0578063f474b5201161006f578063f474b520146106ab578063f9120af6146106d8578063fa534dc0146106f8578063fc299dee14610718578063fce36c7d1461073857600080fd5b8063d66eaabd1461062f578063df5cf72314610642578063e481af9d14610676578063f2fde38b1461068b57600080fd5b8063ab21739a116100dc578063ab21739a1461056b578063b099627e1461058b578063b98d0908146105f5578063c0c53b8b1461060f57600080fd5b806395c6d604146104eb5780639926ee7d1461050b578063a364f4da1461052b578063a98fb3551461054b57600080fd5b80634ae07c37116101905780636d14a9871161015f5780636d14a9871461042057806370a0823114610454578063715018a614610498578063800fb61f146104ad5780638da5cb5b146104cd57600080fd5b80634ae07c37146103575780635df459461461038557806368304835146103b95780636b3aa72e146103ed57600080fd5b80633bc28c8c116101cc5780633bc28c8c146102cc578063416c7e5e146102ec5780634223d5511461030c5780634a5bf6321461031f57600080fd5b806306045a9114610213578063171f1d5b146102485780632e1a7d4d1461027f57806333cfb7b71461029f57600080fd5b3661020e5761020c3334610758565b005b600080fd5b34801561021f57600080fd5b5061023361022e366004614234565b6107ed565b60405190151581526020015b60405180910390f35b34801561025457600080fd5b50610268610263366004614386565b6108e4565b60408051921515835290151560208301520161023f565b34801561028b57600080fd5b5061020c61029a3660046143d7565b610a6e565b3480156102ab57600080fd5b506102bf6102ba3660046143f0565b610b46565b60405161023f919061440d565b3480156102d857600080fd5b5061020c6102e73660046143f0565b610ff9565b3480156102f857600080fd5b5061020c610307366004614468565b61100d565b61020c61031a3660046143f0565b611144565b34801561032b57600080fd5b5060cb5461033f906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b34801561036357600080fd5b50610377610372366004614743565b61114e565b60405161023f9291906147de565b34801561039157600080fd5b5061033f7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b3480156103c557600080fd5b5061033f7f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b3480156103f957600080fd5b507f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f87570761033f565b34801561042c57600080fd5b5061033f7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b34801561046057600080fd5b5061048a61046f3660046143f0565b6001600160a01b0316600090815260ca602052604090205490565b60405190815260200161023f565b3480156104a457600080fd5b5061020c612082565b3480156104b957600080fd5b5061020c6104c83660046143f0565b612096565b3480156104d957600080fd5b506033546001600160a01b031661033f565b3480156104f757600080fd5b5061023361050636600461486f565b612136565b34801561051757600080fd5b5061020c6105263660046148ba565b61215b565b34801561053757600080fd5b5061020c6105463660046143f0565b612227565b34801561055757600080fd5b5061020c610566366004614965565b6122ee565b34801561057757600080fd5b5061020c6105863660046149b5565b612342565b34801561059757600080fd5b506105d36105a63660046143d7565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff909416845291151560208401529082015260600161023f565b34801561060157600080fd5b506097546102339060ff1681565b34801561061b57600080fd5b5061020c61062a3660046149dc565b612701565b61020c61063d366004614a27565b6128c6565b34801561064e57600080fd5b5061033f7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561068257600080fd5b506102bf612a80565b34801561069757600080fd5b5061020c6106a63660046143f0565b612e2c565b3480156106b757600080fd5b5061048a6106c63660046143f0565b60ca6020526000908152604090205481565b3480156106e457600080fd5b5061020c6106f33660046143f0565b612ea2565b34801561070457600080fd5b50610233610713366004614a79565b612ecc565b34801561072457600080fd5b5060655461033f906001600160a01b031681565b34801561074457600080fd5b5061020c610753366004614af6565b612f41565b8060000361078157604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca6020526040812080548392906107a9908490614b80565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a25050565b6000806001600160a01b038316610805575084610831565b8583604051602001610818929190614b93565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff1690036108565760009150506108d8565b600081815260c96020526040902054640100000000900460ff1661087e5760009150506108d8565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f19818403018152919052805160208201209091506108d2878983896132f0565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018787600001518860200151886000015160006002811061092c5761092c614bae565b60200201518951600160200201518a6020015160006002811061095157610951614bae565b60200201518b6020015160016002811061096d5761096d614bae565b602090810291909101518c518d8301516040516109ca9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6109ed9190614bc4565b9050610a60610a066109ff8884613308565b8690613399565b610a0e61342e565b610a56610a4785610a41604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613308565b610a508c6134ee565b90613399565b886201d4c061357d565b909890975095505050505050565b33600090815260ca6020526040902054811115610abf5733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018390526044820152606401610778565b33600090815260ca602052604081208054839290610ade908490614be6565b909155505033600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610b42573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16906313542a4e90602401602060405180830381865afa158015610bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd69190614bf9565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c169063871ef04990602401602060405180830381865afa158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c659190614c12565b90506001600160c01b0381161580610cff57507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190614c3b565b60ff16155b15610d1f5760408051600080825260208201909252905b50949350505050565b6000610d33826001600160c01b0316613797565b90506000805b8251811015610dff577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b0316633ca5a5f5848381518110610d8357610d83614bae565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610deb9190614bf9565b610df59083614b80565b9150600101610d39565b506000816001600160401b03811115610e1a57610e1a614110565b604051908082528060200260200182016040528015610e43578160200160208202803683370190505b5090506000805b8451811015610fec576000858281518110610e6757610e67614bae565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137781690633ca5a5f590602401602060405180830381865afa158015610edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f009190614bf9565b905060005b81811015610fe1576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa158015610f7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9e9190614c73565b60000151868681518110610fb457610fb4614bae565b6001600160a01b039092166020928302919091019091015284610fd681614cb4565b955050600101610f05565b505050600101610e4a565b5090979650505050505050565b611001613859565b61100a816138b3565b50565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108f9190614ccd565b6001600160a01b0316336001600160a01b03161461113b5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610778565b61100a8161391c565b61100a8134610758565b604080518082019091526060808252602082015260008260400151516040518060400160405280600181526020016000815250511480156111aa57508260a0015151604051806040016040528060018152602001600081525051145b80156111d157508260c0015151604051806040016040528060018152602001600081525051145b80156111f857508260e0015151604051806040016040528060018152602001600081525051145b6112625760405162461bcd60e51b8152602060048201526041602482015260008051602061522183398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610778565b825151602084015151146112da5760405162461bcd60e51b815260206004820152604460248201819052600080516020615221833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610778565b4363ffffffff168463ffffffff16106113495760405162461bcd60e51b815260206004820152603c602482015260008051602061522183398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610778565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561140a5761140a614110565b604051908082528060200260200182016040528015611433578160200160208202803683370190505b5081526020860151516001600160401b0381111561145357611453614110565b60405190808252806020026020018201604052801561147c578160200160208202803683370190505b508160200181905250600061152860405180604001604052806001815260200160008152507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115239190614c3b565b613963565b905060005b8760200151518110156117b9576115728860200151828151811061155357611553614bae565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061158857611588614bae565b602090810291909101015280156116485760208301516115a9600183614be6565b815181106115b9576115b9614bae565b602002602001015160001c836020015182815181106115da576115da614bae565b602002602001015160001c11611648576040805162461bcd60e51b815260206004820152602481019190915260008051602061522183398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610778565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b03166304ec63518460200151838151811061168d5761168d614bae565b60200260200101518b8b6000015185815181106116ac576116ac614bae565b60200260200101516040518463ffffffff1660e01b81526004016116e99392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a9190614c12565b6001600160c01b03168360000151828151811061174957611749614bae565b6020026020010181815250506117af6109ff611783848660000151858151811061177557611775614bae565b6020026020010151166139f6565b8a60200151848151811061179957611799614bae565b6020026020010151613a2190919063ffffffff16565b945060010161152d565b50506117c483613b04565b60975490935060ff166000816117db57600061185d565b7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc96001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185d9190614bf9565b905060005b604051806040016040528060018152602001600081525051811015611f535782156119ee578963ffffffff16827f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b031663249a0c42604051806040016040528060018152602001600081525085815181106118e6576118e6614bae565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561192a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194e9190614bf9565b6119589190614b80565b116119ee5760405162461bcd60e51b8152602060048201526066602482015260008051602061522183398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610778565b7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611a4557611a45614bae565b602001015160f81c60f81b60f81c8c8c60a001518581518110611a6a57611a6a614bae565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aea9190614cea565b6001600160401b031916611b0d8a60400151838151811061155357611553614bae565b67ffffffffffffffff191614611ba95760405162461bcd60e51b8152602060048201526061602482015260008051602061522183398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610778565b611bd989604001518281518110611bc257611bc2614bae565b60200260200101518761339990919063ffffffff16565b95507f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611c3257611c32614bae565b602001015160f81c60f81b60f81c8c8c60c001518581518110611c5757611c57614bae565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd79190614d15565b85602001518281518110611ced57611ced614bae565b6001600160601b03909216602092830291909101820152850151805182908110611d1957611d19614bae565b602002602001015185600001518281518110611d3757611d37614bae565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611f4957611dc686600001518281518110611d8157611d81614bae565b602002602001015160405180604001604052806001815260200160008152508581518110611db157611db1614bae565b016020015160f81c60ff161c60019081161490565b15611f41577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611e2257611e22614bae565b602001015160f81c60f81b60f81c8e89602001518581518110611e4757611e47614bae565b60200260200101518f60e001518881518110611e6557611e65614bae565b60200260200101518781518110611e7e57611e7e614bae565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f069190614d15565b8751805185908110611f1a57611f1a614bae565b60200260200101818151611f2e9190614d32565b6001600160601b03169052506001909101905b600101611d5b565b5050600101611862565b505050600080611f6d8a868a606001518b608001516108e4565b9150915081611fde5760405162461bcd60e51b8152602060048201526043602482015260008051602061522183398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610778565b8061203f5760405162461bcd60e51b8152602060048201526039602482015260008051602061522183398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610778565b5050600087826020015160405160200161205a929190614d59565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b61208a613859565b6120946000613b9f565b565b600054600290610100900460ff161580156120b8575060005460ff8083169116105b6120d45760405162461bcd60e51b815260040161077890614da1565b6000805461ffff191660ff8316176101001790556120f182612ea2565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000818484604051612149929190614def565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146121a35760405162461bcd60e51b815260040161077890614dff565b604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757071690639926ee7d906121f19085908590600401614ebd565b600060405180830381600087803b15801561220b57600080fd5b505af115801561221f573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461226f5760405162461bcd60e51b815260040161077890614dff565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a364f4da906024015b600060405180830381600087803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b5050505050565b6122f6613859565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a98fb355906122b9908490600401614f08565b60cb546001600160a01b031633146123825760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610778565b60005a90506000848460405160200161239c929190614b93565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff90911690036123f1576040516311cb69a760e11b815260048101839052602401610778565b8054640100000000900460ff161561241f57604051634e78d7f960e11b815260048101839052602401610778565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca602052604090205410156124a25760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610778565b80546000906124b990849063ffffffff168761114e565b509050604360ff1681602001516000815181106124d8576124d8614bae565b60200260200101516124ea9190614f1b565b6001600160601b03166064826000015160008151811061250c5761250c614bae565b60200260200101516001600160601b03166125279190614f3e565b10156125ba576064816000015160008151811061254657612546614bae565b60200260200101516001600160601b03166125619190614f3e565b604360ff16826020015160008151811061257d5761257d614bae565b602002602001015161258f9190614f1b565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610778565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a6126069087614be6565b6126139062011170614b80565b61261d9190614f3e565b9050826001015481111561265457600183015460405163437e283f60e11b8152600481019190915260248101829052604401610778565b6001600160a01b038716600090815260ca60205260408120805483929061267c908490614be6565b90915550506001600160a01b038716600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156126f6573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff16158080156127215750600054600160ff909116105b8061273b5750303b15801561273b575060005460ff166001145b6127575760405162461bcd60e51b815260040161077890614da1565b6000805460ff19166001179055801561277a576000805461ff0019166101001790555b6001600160a01b0384166127c057604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610778565b6001600160a01b03831661280a57604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610778565b6001600160a01b03821661285557604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610778565b61285f8484613bf1565b60cb80546001600160a01b0319166001600160a01b03841617905580156128c0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600084336040516020016128db929190614b93565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff161561292a57604051630c40bc4360e21b815260048101829052602401610778565b34156129875733600090815260ca60205260408120805434929061294f908490614b80565b909155505033600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a25b33600090815260ca60205260409020548211156129d85733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610778565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612a70913391908a908a908a90614f55565b60405180910390a2505050505050565b606060007f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b069190614c3b565b60ff16905080600003612b2757505060408051600081526020810190915290565b6000805b82811015612bd257604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbe9190614bf9565b612bc89083614b80565b9150600101612b2b565b506000816001600160401b03811115612bed57612bed614110565b604051908082528060200260200182016040528015612c16578160200160208202803683370190505b5090506000805b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f9190614c3b565b60ff16811015612e2257604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d379190614bf9565b905060005b81811015612e18576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa158015612db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd59190614c73565b60000151858581518110612deb57612deb614bae565b6001600160a01b039092166020928302919091019091015283612e0d81614cb4565b945050600101612d3c565b5050600101612c1d565b5090949350505050565b612e34613859565b6001600160a01b038116612e995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610778565b61100a81613b9f565b612eaa613859565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190612f00908b908b908b908b908b908b908b908b90600401614fac565b602060405180830381865afa158015612f1d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d8919061500e565b6065546001600160a01b03163314612fd65760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610778565b60005b818110156132a157828282818110612ff357612ff3614bae565b9050602002810190613005919061502b565b6130169060408101906020016143f0565b6001600160a01b03166323b872dd333086868681811061303857613038614bae565b905060200281019061304a919061502b565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156130a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c5919061500e565b5060008383838181106130da576130da614bae565b90506020028101906130ec919061502b565b6130fd9060408101906020016143f0565b604051636eb1769f60e11b81523060048201526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f81166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561316b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318f9190614bf9565b90508383838181106131a3576131a3614bae565b90506020028101906131b5919061502b565b6131c69060408101906020016143f0565b6001600160a01b031663095ea7b37f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f8387878781811061320857613208614bae565b905060200281019061321a919061502b565b604001356132289190614b80565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613273573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613297919061500e565b5050600101612fd9565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f169063fce36c7d906121f190859085906004016150b1565b6000836132fe868585613c6e565b1495945050505050565b604080518082019091526000808252602082015261332461401e565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061335357fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610778565b505092915050565b60408051808201909152600080825260208201526133b561403c565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806133f057fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610778565b61343661405a565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201909152600080825260208201526000808061351e6000805160206151e183398151915286614bc4565b90505b61352a81613d6b565b90935091506000805160206151e18339815191528283098303613563576040805180820190915290815260208101919091529392505050565b6000805160206151e1833981519152600182089050613521565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906135af61407f565b60005b600281101561376a5760006135c8826006614f3e565b90508482600281106135dc576135dc614bae565b602002015151836135ee836000614b80565b600c81106135fe576135fe614bae565b602002015284826002811061361557613615614bae565b6020020151602001518382600161362c9190614b80565b600c811061363c5761363c614bae565b602002015283826002811061365357613653614bae565b6020020151515183613666836002614b80565b600c811061367657613676614bae565b602002015283826002811061368d5761368d614bae565b60200201515160016020020151836136a6836003614b80565b600c81106136b6576136b6614bae565b60200201528382600281106136cd576136cd614bae565b6020020151602001516000600281106136e8576136e8614bae565b6020020151836136f9836004614b80565b600c811061370957613709614bae565b602002015283826002811061372057613720614bae565b60200201516020015160016002811061373b5761373b614bae565b60200201518361374c836005614b80565b600c811061375c5761375c614bae565b6020020152506001016135b2565b5061377361409e565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b60606000806137a5846139f6565b61ffff166001600160401b038111156137c0576137c0614110565b6040519080825280601f01601f1916602001820160405280156137ea576020820181803683370190505b5090506000805b825182108015613802575061010081105b15612e22576001811b935085841615613849578060f81b83838151811061382b5761382b614bae565b60200101906001600160f81b031916908160001a9053508160010191505b61385281614cb4565b90506137f1565b6033546001600160a01b031633146120945760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610778565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061396f84613ded565b9050808360ff166001901b116139ed5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610778565b90505b92915050565b6000805b82156139f057613a0b600184614be6565b9092169180613a19816151bf565b9150506139fa565b60408051808201909152600080825260208201526102008261ffff1610613a7d5760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610778565b8161ffff16600103613a905750816139f0565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613af957600161ffff871660ff83161c81169003613adc57613ad98484613399565b93505b613ae68384613399565b92506201fffe600192831b169101613aac565b509195945050505050565b60408051808201909152600080825260208201528151158015613b2957506020820151155b15613b47575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206151e18339815191528460200151613b7a9190614bc4565b613b92906000805160206151e1833981519152614be6565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613c5c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610778565b613c6582613b9f565b610b42816138b3565b600060208451613c7e9190614bc4565b15613d055760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610778565b8260205b85518111610d1657613d1c600285614bc4565b600003613d4057816000528086015160205260406000209150600284049350613d59565b8086015160005281602052604060002091506002840493505b613d64602082614b80565b9050613d09565b600080806000805160206151e183398151915260036000805160206151e1833981519152866000805160206151e1833981519152888909090890506000613de1827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206151e1833981519152613f75565b91959194509092505050565b600061010082511115613e765760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610778565b8151600003613e8757506000919050565b60008083600081518110613e9d57613e9d614bae565b0160200151600160f89190911c81901b92505b8451811015613f6c57848181518110613ecb57613ecb614bae565b0160200151600160f89190911c1b9150828211613f605760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610778565b91811791600101613eb0565b50909392505050565b600080613f8061409e565b613f886140bc565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fc557fe5b50826140135760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610778565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061406d6140da565b815260200161407a6140da565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613b9a57600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561414857614148614110565b60405290565b60405161010081016001600160401b038111828210171561414857614148614110565b604051601f8201601f191681016001600160401b038111828210171561419957614199614110565b604052919050565b60006001600160401b038311156141ba576141ba614110565b6141cd601f8401601f1916602001614171565b90508281528383830111156141e157600080fd5b828260208301376000602084830101529392505050565b600082601f83011261420957600080fd5b614218838335602085016141a1565b9392505050565b6001600160a01b038116811461100a57600080fd5b600080600080600080600080610100898b03121561425157600080fd5b88359750602089013596506040890135955061426f60608a016140f8565b94506080890135935060a08901356001600160401b0381111561429157600080fd5b61429d8b828c016141f8565b93505060c0890135915060e08901356142b58161421f565b809150509295985092959890939650565b6000604082840312156142d857600080fd5b6142e0614126565b9050813581526020820135602082015292915050565b600082601f83011261430757600080fd5b61430f614126565b80604084018581111561432157600080fd5b845b8181101561433b578035845260209384019301614323565b509095945050505050565b60006080828403121561435857600080fd5b614360614126565b905061436c83836142f6565b815261437b83604084016142f6565b602082015292915050565b600080600080610120858703121561439d57600080fd5b843593506143ae86602087016142c6565b92506143bd8660608701614346565b91506143cc8660e087016142c6565b905092959194509250565b6000602082840312156143e957600080fd5b5035919050565b60006020828403121561440257600080fd5b81356139ed8161421f565b6020808252825182820181905260009190848201906040850190845b8181101561444e5783516001600160a01b031683529284019291840191600101614429565b50909695505050505050565b801515811461100a57600080fd5b60006020828403121561447a57600080fd5b81356139ed8161445a565b803563ffffffff81168114613b9a57600080fd5b60006001600160401b038211156144b2576144b2614110565b5060051b60200190565b600082601f8301126144cd57600080fd5b813560206144e26144dd83614499565b614171565b8083825260208201915060208460051b87010193508684111561450457600080fd5b602086015b848110156145275761451a81614485565b8352918301918301614509565b509695505050505050565b600082601f83011261454357600080fd5b813560206145536144dd83614499565b8083825260208201915060208460061b87010193508684111561457557600080fd5b602086015b848110156145275761458c88826142c6565b83529183019160400161457a565b600082601f8301126145ab57600080fd5b813560206145bb6144dd83614499565b82815260059290921b840181019181810190868411156145da57600080fd5b8286015b848110156145275780356001600160401b038111156145fd5760008081fd5b61460b8986838b01016144bc565b8452509183019183016145de565b6000610180828403121561462c57600080fd5b61463461414e565b905081356001600160401b038082111561464d57600080fd5b614659858386016144bc565b8352602084013591508082111561466f57600080fd5b61467b85838601614532565b6020840152604084013591508082111561469457600080fd5b6146a085838601614532565b60408401526146b28560608601614346565b60608401526146c48560e086016142c6565b60808401526101208401359150808211156146de57600080fd5b6146ea858386016144bc565b60a084015261014084013591508082111561470457600080fd5b614710858386016144bc565b60c084015261016084013591508082111561472a57600080fd5b506147378482850161459a565b60e08301525092915050565b60008060006060848603121561475857600080fd5b8335925061476860208501614485565b915060408401356001600160401b0381111561478357600080fd5b61478f86828701614619565b9150509250925092565b60008151808452602080850194506020840160005b838110156147d35781516001600160601b0316875295820195908201906001016147ae565b509495945050505050565b60408152600083516040808401526147f96080840182614799565b90506020850151603f198483030160608501526148168282614799565b925050508260208301529392505050565b60008083601f84011261483957600080fd5b5081356001600160401b0381111561485057600080fd5b60208301915083602082850101111561486857600080fd5b9250929050565b60008060006040848603121561488457600080fd5b83356001600160401b0381111561489a57600080fd5b6148a686828701614827565b909790965060209590950135949350505050565b600080604083850312156148cd57600080fd5b82356148d88161421f565b915060208301356001600160401b03808211156148f457600080fd5b908401906060828703121561490857600080fd5b60405160608101818110838211171561492357614923614110565b60405282358281111561493557600080fd5b614941888286016141f8565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561497757600080fd5b81356001600160401b0381111561498d57600080fd5b8201601f8101841361499e57600080fd5b6149ad848235602084016141a1565b949350505050565b6000806000606084860312156149ca57600080fd5b8335925060208401356147688161421f565b6000806000606084860312156149f157600080fd5b83356149fc8161421f565b92506020840135614a0c8161421f565b91506040840135614a1c8161421f565b809150509250925092565b60008060008060608587031215614a3d57600080fd5b8435935060208501356001600160401b03811115614a5a57600080fd5b614a6687828801614827565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614a9457600080fd5b873596506020880135955060408801359450614ab2606089016140f8565b93506080880135925060a08801356001600160401b03811115614ad457600080fd5b614ae08a828b016141f8565b92505060c0880135905092959891949750929550565b60008060208385031215614b0957600080fd5b82356001600160401b0380821115614b2057600080fd5b818501915085601f830112614b3457600080fd5b813581811115614b4357600080fd5b8660208260051b8501011115614b5857600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156139f0576139f0614b6a565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614be157634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156139f0576139f0614b6a565b600060208284031215614c0b57600080fd5b5051919050565b600060208284031215614c2457600080fd5b81516001600160c01b03811681146139ed57600080fd5b600060208284031215614c4d57600080fd5b815160ff811681146139ed57600080fd5b6001600160601b038116811461100a57600080fd5b600060408284031215614c8557600080fd5b614c8d614126565b8251614c988161421f565b81526020830151614ca881614c5e565b60208201529392505050565b600060018201614cc657614cc6614b6a565b5060010190565b600060208284031215614cdf57600080fd5b81516139ed8161421f565b600060208284031215614cfc57600080fd5b815167ffffffffffffffff19811681146139ed57600080fd5b600060208284031215614d2757600080fd5b81516139ed81614c5e565b6001600160601b03828116828216039080821115614d5257614d52614b6a565b5092915050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b83811015614d9457815185529382019390820190600101614d78565b5092979650505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015614e9d57602081850181015186830182015201614e81565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b0383168152604060208201526000825160606040840152614ee760a0840182614e77565b90506020840151606084015260408401516080840152809150509392505050565b6020815260006142186020830184614e77565b6001600160601b0381811683821602808216919082811461339157613391614b6a565b80820281158282048414176139f0576139f0614b6a565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b60006101008a83528960208401528860408401526001600160601b0319881660608401528660808401528060a0840152614fe881840187614e77565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b60006020828403121561502057600080fd5b81516139ed8161445a565b60008235609e1983360301811261504157600080fd5b9190910192915050565b8035613b9a8161421f565b8183526000602080850194508260005b858110156147d35781356150798161421f565b6001600160a01b031687528183013561509181614c5e565b6001600160601b0316878401526040968701969190910190600101615066565b60208082528181018390526000906040808401600586901b8501820187855b888110156151b157878303603f190184528135368b9003609e190181126150f657600080fd5b8a0160a0813536839003601e1901811261510f57600080fd5b820188810190356001600160401b0381111561512a57600080fd5b8060061b360382131561513c57600080fd5b82875261514c8388018284615056565b9250505061515b88830161504b565b6001600160a01b0316888601528187013587860152606061517d818401614485565b63ffffffff16908601526080615194838201614485565b63ffffffff169501949094525092850192908501906001016150d0565b509098975050505050505050565b600061ffff8083168181036151d6576151d6614b6a565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a264697066735822122033c0c7e49fb5de5099ecf188c45e1a03d3d3ee543f278b51e29defde53c95db164736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x82e01223d51eb87e16a03e24687edf0f294da6f1":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea2646970667358221220355151a18763854f71011cb9636c419bc4393ef5d1924777a929c1e19aaa390964736f6c634300080c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8"}},"0x851356ae760d987e095750cceb3bc6014560891c":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120001","0x0000000000000000000000000000000000000000000000000000000000000001":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000064":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000096":"0x0000000000000000000000000000000000000000000000000000000000000001","0x000000000000000000000000000000000000000000000000000000000000009c":"0x0000000000000000000000000000000000000000000000000000000000000003","0x000000000000000000000000000000000000000000000000000000000000009d":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000000000000000000000000000000000000000009e":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd00","0x683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c7":"0x00000000000000000000000000000000000000000000000000322af8000000c8","0xaf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c":"0x00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","0xaf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539d":"0x000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e","0xaf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539e":"0x000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}},"0x8a791620dd6260079bf849dc5567adc3f2fdc318":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000097":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000098":"0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000000000000000000c9":"0x000000000000000000000000000000000000000000000000000000000000000a","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0x8f86403a4de0bb5791fa46b8e795c547942fe4cf":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a47565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a60565b6102a261029d366004611a77565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa1565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b61034461033f366004611a77565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611ae9565b6109b8565b6103f26103ed366004611b46565b610e0b565b6040516101529190611bbe565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a47565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146104ac5760405162461bcd60e51b81526004016104a390611c08565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146105fc5760405162461bcd60e51b81526004016104a390611c08565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c7c565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614610a025760405162461bcd60e51b81526004016104a390611c08565b6000610a30610a1936869003860160408701611cf8565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611eb283398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611eb283398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611eb283398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2a565b6040516020818303038152906040528051906020012060001c610c419190611d6c565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cf8565b90611307565b610c7436899003890189611cf8565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cf8565b610cd6368a90038a0160808b01611dde565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611eb283398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e1d565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce2565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce2565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e5d565b81548110610f9a57610f9a611ce2565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e5d565b858581518110610fd557610fd5611ce2565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e70565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146110625760405162461bcd60e51b81526004016104a390611c08565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce2565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e5d565b8154811061121657611216611ce2565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e87565b905084826002811061154957611549611ce2565b6020020151518361155b836000611e9e565b600c811061156b5761156b611ce2565b602002015284826002811061158257611582611ce2565b602002015160200151838260016115999190611e9e565b600c81106115a9576115a9611ce2565b60200201528382600281106115c0576115c0611ce2565b60200201515151836115d3836002611e9e565b600c81106115e3576115e3611ce2565b60200201528382600281106115fa576115fa611ce2565b6020020151516001602002015183611613836003611e9e565b600c811061162357611623611ce2565b602002015283826002811061163a5761163a611ce2565b60200201516020015160006002811061165557611655611ce2565b602002015183611666836004611e9e565b600c811061167657611676611ce2565b602002015283826002811061168d5761168d611ce2565b6020020151602001516001600281106116a8576116a8611ce2565b6020020151836116b9836005611e9e565b600c81106116c9576116c9611ce2565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d6c565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e5d565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b915060208084013567ffffffffffffffff808211156119db57600080fd5b818601915086601f8301126119ef57600080fd5b813581811115611a0157611a01611931565b611a13601f8201601f19168501611970565b91508082528784828501011115611a2957600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a5957600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8a57600080fd5b611a9383611905565b946020939093013593505050565b600080600060608486031215611ab657600080fd5b611abf84611905565b9250602084013563ffffffff81168114611ad857600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0057600080fd5b611b09856118cc565b9350610100601f1982011215611b1e57600080fd5b602085019250604061011f1982011215611b3757600080fd5b50610120840190509250925092565b600080600060408486031215611b5b57600080fd5b833567ffffffffffffffff80821115611b7357600080fd5b818601915086601f830112611b8757600080fd5b813581811115611b9657600080fd5b876020828501011115611ba857600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611bfc57835163ffffffff1683529284019291840191600101611bda565b50909695505050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b03841681526000602084602084015260606040840152835180606085015260005b81811015611cbf57858101830151858201608001528201611ca3565b506000608082860101526080601f19601f83011685010192505050949350505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611d0a57600080fd5b611d12611947565b82358152602083013560208201528091505092915050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8957634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611d9f57600080fd5b611da7611947565b806040840185811115611db957600080fd5b845b81811015611dd3578035845260209384019301611dbb565b509095945050505050565b600060808284031215611df057600080fd5b611df8611947565b611e028484611d8e565b8152611e118460408501611d8e565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e47565b600081611e7f57611e7f611e47565b506000190190565b80820281158282048414176106ff576106ff611e47565b808201808211156106ff576106ff611e4756fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a264697066735822122032bb5054c7a2f6432e5be9a0f6a1c05e87838a89c3e8ae01d982bce76ffd2a6064736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x90f79bf6eb2c4f870365e785982e1f101e93b906":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x95401dc811bb5740090279ba06cfa8fcf6113778":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0eb5be412f275a18f6e4d622aee4ff40b21467c926224771b782d4c095d1444b":"0x0000000000000000000000000000000000000000000000000000000000000007","0x17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec":"0x0000000000000000000000000000000000000000000000000000000000000001","0x295841a49a1089f4b560f91cfbb0133326654dcbb1041861fc5dde96c724a22f":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x00000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf","0x3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff":"0x0000000000000000000000000000000000000000000000000000000000000001","0xa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49":"0x0000000000000000000000000000000000000000000000000000000000000001","0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5":"0x0000000000000000000000000000000000000000000000000000000000000001","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042","0xcfb339bd1c51c488f6134f4ac63d1594afad827b3401c3fc51ed1da74a8ca14e":"0x000000000de0b6b3a7640000c5a5c42992decbae36851359345fe25997f5c42d"}},"0x959922be3caee4b8cd9a407cc3ac1c251c2007b1":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd5565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d13565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d60565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d7d565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610dc7565b6105b35760405162461bcd60e51b815260040161051990610de9565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610dc7565b61070d5760405162461bcd60e51b815260040161051990610de9565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d60565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d7d565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff80821115610c8b57600080fd5b818501915085601f830112610c9f57600080fd5b813581811115610cae57600080fd5b8660208260051b8501011115610cc357600080fd5b60209290920196919550909350505050565b600080600060608486031215610cea57600080fd5b8335610cf581610af7565b9250610d0360208501610b0c565b9150604084013590509250925092565b60008060008060808587031215610d2957600080fd5b8435610d3481610af7565b9350610d4260208601610b0c565b9250610d5060408601610b0c565b9396929550929360600135925050565b600060208284031215610d7257600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dd957600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea264697066735822122073763b5180077a8bc6ac9f9f13d1ff53a2202a0e325b92566fd1ff7df689217864736f6c63430008180033","storage":{}},"0x976ea74026e726554db657fa54763abd0c3a0aa9":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x9965507d1a55bcc2695c58ba16fb37d819b0a4dc":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x998abeb3e57409262ae5b751f60747921b33613e":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec":"0x0000000000000000000000000000000000000000000000000000000000000001","0x295841a49a1089f4b560f91cfbb0133326654dcbb1041861fc5dde96c724a22f":"0x0000000000000007000000000000000000000000000000000000000000000000","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}},"0x99bba657f2bbc93c02d617f8ba121cb8fc104acf":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d85565b610959565b604051610217929190612e25565b6102b56102b0366004612e4a565b610c15565b6040516102179190612e76565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4a565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4a565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f7f565b610ccd565b61035d610358366004612d85565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc36600461303b565b611240565b604051610217919061308d565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130cb565b61152d565b60405161021791906130fe565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461314a565b6116ce565b61027f610495366004613174565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d1366004613240565b6118e9565b6102546104e436600461328d565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132c9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b610254610559366004613305565b611ac3565b61041461056c366004612e4a565b611b58565b61025461057f3660046132c9565b611c41565b61027f610592366004613347565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133a4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b491906133f5565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613412565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133a4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561348e565b905060200201602081019061084a91906134a4565b8289898481811061085d5761085d61348e565b90506020020135815481106108745761087461348e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61348e565b90506020020135815481106108f4576108f461348e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61348e565b905060200201602081019061093091906134a4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146109a45760405162461bcd60e51b8152600401610611906134bf565b6000836001600160401b038111156109be576109be612eee565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612eee565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61348e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361348e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61348e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f91906133f5565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613412565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133a4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61348e565b602002602001015181548110610ea357610ea361348e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161348e565b602002602001015181548110610f1957610f1961348e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613547565b81548110610f6957610f6961348e565b9060005260206000200183878381518110610f8657610f8661348e565b602002602001015181548110610f9e57610f9e61348e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161355a565b6000828152602081208201600019908101919091550190558154829061101990600190613547565b815481106110295761102961348e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61348e565b6020026020010151815481106110725761107261348e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061355a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461112d5760405162461bcd60e51b8152600401610611906134bf565b6000805b8381101561123657600085858381811061114d5761114d61348e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612eee565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761348e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61348e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613547565b6114699190613547565b815481106114795761147961348e565b60009182526020909120015463ffffffff16116114d757600161149c8284613547565b6114a69190613547565b8585815181106114b8576114b861348e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61348e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175091906133f5565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613412565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133a4565b6117c283836123f7565b505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461180f5760405162461bcd60e51b8152600401610611906134bf565b60005b818110156118e357600083838381811061182e5761182e61348e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b91906133f5565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613412565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133a4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613547565b81548110611a8c57611a8c61348e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613547565b81548110611bec57611bec61348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61348e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614611cea5760405162461bcd60e51b8152600401610611906134bf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91692639004134792611ea1928c9201613570565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135d1565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761348e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561348e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61348e565b6020026020010151611fae9190613661565b611fb89190613678565b611fc2908661369a565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613547565b815481106120fe576120fe61348e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613547565b815481106122b4576122b461348e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374183398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136ba565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374183398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136ba565b811015612646578482815181106125895761258961348e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861348e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61348e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661348e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61348e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261348e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61348e565b60200260200101516000015186848151811061285d5761285d61348e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613547565b81548110612a6c57612a6c61348e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613547565b925050506114ee565b80612aa1816136cd565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136e4565b600080821215612baa57612b9982613704565b612ba39084613720565b9050610cae565b612ba3828461369a565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b0380821115612d0157600080fd5b612d0d89838a01612c80565b90965094506040880135915080821115612d2657600080fd5b50612d3388828901612c80565b969995985093965092949392505050565b60008083601f840112612d5657600080fd5b5081356001600160401b03811115612d6d57600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9b57600080fd5b8435612da681612c31565b93506020850135925060408501356001600160401b03811115612dc857600080fd5b612dd487828801612d44565b95989497509550505050565b60008151808452602080850194506020840160005b83811015612e1a5781516001600160601b031687529582019590820190600101612df5565b509495945050505050565b604081526000612e386040830185612de0565b82810360208401526123ee8185612de0565b60008060408385031215612e5d57600080fd5b82359150612e6d60208401612bb4565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257612ecf83855163ffffffff808251168352806020830151166020840152506001600160601b0360408201511660408301525050565b9284019260609290920191600101612e92565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2657612f26612eee565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5457612f54612eee565b604052919050565b60006001600160401b03821115612f7557612f75612eee565b5060051b60200190565b60008060408385031215612f9257600080fd5b612f9b83612bb4565b91506020808401356001600160401b03811115612fb757600080fd5b8401601f81018613612fc857600080fd5b8035612fdb612fd682612f5c565b612f2c565b81815260059190911b82018301908381019088831115612ffa57600080fd5b928401925b8284101561301857833582529284019290840190612fff565b80955050505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305057600080fd5b61305984613027565b925060208401356001600160401b0381111561307457600080fd5b61308086828701612d44565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257835163ffffffff16835292840192918401916001016130a9565b6000806000606084860312156130e057600080fd5b6130e984612bb4565b95602085013595506040909401359392505050565b815163ffffffff9081168252602080840151909116908201526040808301516001600160601b03169082015260608101610cae565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561315d57600080fd5b61316683612bb4565b9150612e6d60208401613133565b60008060006040848603121561318957600080fd5b8335925060208401356001600160401b0381111561307457600080fd5b600082601f8301126131b757600080fd5b813560206131c7612fd683612f5c565b82815260069290921b840181019181810190868411156131e657600080fd5b8286015b8481101561323557604081890312156132035760008081fd5b61320b612f04565b813561321681612c31565b8152613223828601613133565b818601528352918301916040016131ea565b509695505050505050565b6000806040838503121561325357600080fd5b61325c83612bb4565b915060208301356001600160401b0381111561327757600080fd5b613283858286016131a6565b9150509250929050565b6000806000606084860312156132a257600080fd5b6132ab84612bb4565b92506132b960208501613027565b9150604084013590509250925092565b6000806000606084860312156132de57600080fd5b833592506132ee60208501612bb4565b91506132fc60408501613027565b90509250925092565b6000806000806080858703121561331b57600080fd5b61332485612bb4565b935061333260208601613027565b93969395505050506040820135916060013590565b60008060006060848603121561335c57600080fd5b61336584612bb4565b925061337360208501613133565b915060408401356001600160401b0381111561338e57600080fd5b61339a868287016131a6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561340757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134b657600080fd5b6114ee82613133565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613531565b634e487b7160e01b600052603160045260246000fd5b60006040820160018060a01b038086168452602060406020860152828654808552606087019150876000526020600020945060005b818110156135c35785548516835260019586019592840192016135a5565b509098975050505050505050565b600060208083850312156135e457600080fd5b82516001600160401b038111156135fa57600080fd5b8301601f8101851361360b57600080fd5b8051613619612fd682612f5c565b81815260059190911b8201830190838101908783111561363857600080fd5b928401925b828410156136565783518252928401929084019061363d565b979650505050505050565b8082028115828204841417610cae57610cae613531565b60008261369557634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b0381811683821601908082111561062b5761062b613531565b80820180821115610cae57610cae613531565b6000816136dc576136dc613531565b506000190190565b818103600083128015838313168383128216171561062b5761062b613531565b6000600160ff1b820161371957613719613531565b5060000390565b6001600160601b0382811682821603908082111561062b5761062b61353156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a264697066735822122086a228217be3aa4346ddc514699a0ca7893ec8b64cbf2023e3b1369fe2efcf1164736f6c63430008180033","storage":{}},"0x9a676e781a523b5d0c0e43731313a708cb607508":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b3d565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b83565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611bf5565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c12565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c5c565b6104cb5760405162461bcd60e51b815260040161042e90611c7e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c5c565b6107345760405162461bcd60e51b815260040161042e90611c7e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611d988339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c5c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cc6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611bf5565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c12565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611cf5565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d4c565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d76565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b915060208381013567ffffffffffffffff80821115611a9257600080fd5b9085019060608288031215611aa657600080fd5b611aae6119fc565b823582811115611abd57600080fd5b8301601f81018913611ace57600080fd5b803583811115611ae057611ae06119e6565b611af2601f8201601f19168701611a25565b93508084528986828401011115611b0857600080fd5b808683018786013760008682860101525050818152838301358482015260408301356040820152809450505050509250929050565b60008060008060808587031215611b5357600080fd5b8435611b5e8161188d565b93506020850135611b6e8161188d565b93969395505050506040820135916060013590565b60008060208385031215611b9657600080fd5b823567ffffffffffffffff80821115611bae57600080fd5b818501915085601f830112611bc257600080fd5b813581811115611bd157600080fd5b866020828501011115611be357600080fd5b60209290920196919550909350505050565b600060208284031215611c0757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c6e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b8281526000602060406020840152835180604085015260005b81811015611d2a57858101830151858201606001528201611d0e565b506000606082860101526060601f19601f830116850101925050509392505050565b600060208284031215611d5e57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a264697066735822122016d51116de2d4e6ebc6b9dfa2dada06d1f6e51f6dc472774de5d172aa09dda6d64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae":{"nonce":1,"balance":"0x0","code":"0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125b8565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d90612609565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca008361267d565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126a7565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f3833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126cf565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126ec565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a309190612736565b610a4c5760405162461bcd60e51b815260040161071d90612758565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d90612609565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321383398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321383398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca008261267d565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a0565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127bc565b9250846001600160a01b03166000805160206131f383398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126a7565b90915550506040518381526001600160a01b038616906000805160206131f38339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c79190612736565b6110e35760405162461bcd60e51b815260040161071d90612758565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127f8565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128e561090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612862565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d90612609565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca008261267d565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b6020526040812054611545908390612877565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca008361289e565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126a7565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a0565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f3833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b2565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126cf565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126ec565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a0565b905061090b565b611e408383612877565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128cb565b9091555060408051610940810190915261090e8082526000916120a491839133916128e56020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612862565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff8082111561257457600080fd5b61258089838a016124fb565b9097509550602088013591508082111561259957600080fd5b506125a6888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125ce57600080fd5b84356125d9816123f6565b935060208501356125e9816123f6565b925060408501356125f9816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261268c5761268c612667565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126c7576126c7612691565b505092915050565b6000602082840312156126e157600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274857600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127b5576127b5612691565b5060000390565b8181038181111561090b5761090b612691565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061280c6060830187896127cf565b828103602084015261281f8186886127cf565b9150508260408301529695505050505050565b6000815160005b818110156128535760208185018101518683015201612839565b50600093019283525090919050565b60006123ee6128718386612832565b84612832565b818103600083128015838313168383128216171561289757612897612691565b5092915050565b6000826128ad576128ad612667565b500790565b6000602082840312156128c457600080fd5b5051919050565b6000600182016128dd576128dd612691565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220517f086e259f6d4f92497674fa8b87966eef35c1226b2e6369f2a0bdacf2836964736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x9e545e3c0baab3e08cdfd552c960a1050f373042":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"}},"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0":{"nonce":1,"balance":"0x0","code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220d9b5867338741992fb34ad4d7cbd0a6be2f72f88e519e77dfae6583d2333734564736f6c63430008180033","storage":{}},"0xa0ee7a142d267c1f36714e4a8f75612f20a79720":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614954565b610de8565b005b6103da6103ea3660046149a7565b610f2d565b6103da6103fd3660046149cb565b610fe0565b6103da610410366004614a0c565b611097565b6103da610423366004614a25565b6111d6565b61035a6104363660046149a7565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149cb565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a90565b611218565b6103da6104bc3660046149cb565b61135c565b61035a6104cf3660046149a7565b609b6020526000908152604090205481565b6103da6104ef366004614b37565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b6105413660046149a7565b6001600160a01b039081166000908152609960205260409020600101541690565b6105756105703660046149a7565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e3c565b611626565b610575610606366004614e78565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614ea9565b611656565b6103da610644366004614a0c565b6116ef565b61051b6106573660046149a7565b609a602052600090815260409020546001600160a01b031681565b6105756106803660046149a7565b611700565b6103da611721565b61035a61069b366004614f38565b609860209081526000928352604080842090915290825290205481565b6103da6106c6366004615019565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150a9565b611961565b6040516103649190615134565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da610738366004615147565b611a33565b61035a61074b3660046149a7565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a0c565b609e6020526000908152604090205460ff1681565b6105756107b536600461517c565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec3660046149a7565b60a16020526000908152604090205481565b61086e61080c3660046149a7565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151a8565b611b05565b61035a62034bc081565b6108d46108cf3660046149a7565b611bbe565b60405161036492919061522a565b6103ba6108f03660046149a7565b611f75565b6103da61090336600461524f565b61242e565b6103da6109163660046152a7565b61254b565b6103da6109293660046149a7565b6125dc565b61035a612652565b6103da610944366004614a0c565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152c3565b905060200201602081019061098691906149a7565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152d9565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614bd9565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152c3565b9050602002810190610b4e9190615310565b610b5c906020810190615330565b9050878783818110610b7057610b706152c3565b9050602002810190610b829190615310565b610b8c9080615330565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152c3565b9050602002810190610c269190615310565b610c379060608101906040016149a7565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152c3565b9050602002810190610cdc9190615310565b610ced9060608101906040016149a7565b8a8a86818110610cff57610cff6152c3565b9050602002810190610d119190615310565b610d1b9080615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152c3565b9050602002810190610d739190615310565b610d81906020810190615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152c3565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615379565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153cb565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa491906153fa565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615417565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab590615461565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154be565b61111f5760405162461bcd60e51b8152600401610ab5906154db565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab590615461565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152c3565b90506020028101906114bd9190615523565b8989848181106114cf576114cf6152c3565b90506020028101906114e19190615330565b8989868181106114f3576114f36152c3565b9050602002013588888781811061150c5761150c6152c3565b90506020020160208101906115219190615539565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154be565b6115e75760405162461bcd60e51b8152600401610ab5906154db565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155ca565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614bd9565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152c3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152c3565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153cb565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5291906155dd565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea9190810190615655565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152c3565b602002602001018181525050611f68565b8351611dc7906001615725565b6001600160401b03811115611dde57611dde614bd9565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614bd9565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152c3565b6020026020010151838281518110611e8757611e876152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152c3565b6020026020010151828281518110611ed357611ed36152c3565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615738565b81518110611f1b57611f1b6152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615738565b81518110611f5b57611f5b6152c3565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152d9565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614bd9565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152c3565b602002602001015182600081518110612396576123966152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152c3565b6020026020010151816000815181106123e3576123e36152c3565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152c3565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270691906153fa565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615417565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152c3565b602002602001015186858151811061295b5761295b6152c3565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152c3565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152c3565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152c3565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154be565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152c3565b6020026020010151868581518110612c5a57612c5a6152c3565b60200260200101516040518463ffffffff1660e01b8152600401612c809392919061574b565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361576f565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d999083908590615788565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157a1565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157a1565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c82826157de565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615379565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152d9565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152c3565b6020026020010151858581518110613220576132206152c3565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615738565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f9392919061574b565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152c3565b90506020020160208101906134be91906149a7565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152c3565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615725565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f9392919061574b565b60006139776105f387615841565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157a1565b63ffffffff16613a1d9190615725565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab560608701604088016149a7565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615330565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615330565b9050811015613d23574360a16000613c0b60a08b018b615330565b85818110613c1b57613c1b6152c3565b9050602002016020810190613c3091906149a7565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157a1565b63ffffffff16613c6a9190615725565b1115613c885760405162461bcd60e51b8152600401610ab59061584d565b613d1b613c9860208901896149a7565b33613ca660a08b018b615330565b85818110613cb657613cb66152c3565b9050602002016020810190613ccb91906149a7565b613cd860c08c018c615330565b86818110613ce857613ce86152c3565b905060200201358a8a87818110613d0157613d016152c3565b9050602002016020810190613d1691906149a7565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615330565b9050811015614114574360a16000613d6c60a08c018c615330565b85818110613d7c57613d7c6152c3565b9050602002016020810190613d9191906149a7565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157a1565b63ffffffff16613dcb9190615725565b1115613de95760405162461bcd60e51b8152600401610ab59061584d565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615330565b83818110613e1b57613e1b6152c3565b9050602002016020810190613e3091906149a7565b6001600160a01b031603613f7f576000613e4d60208a018a6149a7565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615330565b87818110613e9e57613e9e6152c3565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1691906155dd565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615330565b88818110613f5c57613f5c6152c3565b9050602002016020810190613f7191906149a7565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152c3565b9050602002016020810190613fd691906149a7565b613fe360a08d018d615330565b86818110613ff357613ff36152c3565b905060200201602081019061400891906149a7565b61401560c08e018e615330565b87818110614025576140256152c3565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615330565b858181106140ce576140ce6152c3565b90506020020160208101906140e391906149a7565b6140f060c08d018d615330565b86818110614100576141006152c3565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061419290869086906004016158d5565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d3919061592c565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b1300906143809088908890879060040161574b565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615956565b036144f25750565b600181600481111561450657614506615956565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615956565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615956565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615956565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615725565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b6020808252825182820181905260009190848201906040850190845b818110156148ef578351835292840192918401916001016148d3565b50909695505050505050565b60006060828403121561490d57600080fd5b50919050565b60008083601f84011261492557600080fd5b5081356001600160401b0381111561493c57600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561496957600080fd5b61497385856148fb565b925060608401356001600160401b0381111561498e57600080fd5b61499a86828701614913565b9497909650939450505050565b6000602082840312156149b957600080fd5b81356149c481614837565b9392505050565b6000806000606084860312156149e057600080fd5b83356149eb81614837565b925060208401356149fb81614837565b929592945050506040919091013590565b600060208284031215614a1e57600080fd5b5035919050565b60008060008060408587031215614a3b57600080fd5b84356001600160401b0380821115614a5257600080fd5b614a5e888389016147b2565b90965094506020870135915080821115614a7757600080fd5b50614a84878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aac57600080fd5b8835614ab781614837565b97506020890135614ac781614837565b9650604089013595506060890135945060808901356001600160401b0380821115614af157600080fd5b614afd8c838d016147b2565b909650945060a08b0135915080821115614b1657600080fd5b50614b238b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b5357600080fd5b88356001600160401b0380821115614b6a57600080fd5b614b768c838d016147b2565b909a50985060208b0135915080821115614b8f57600080fd5b614b9b8c838d016147b2565b909850965060408b0135915080821115614bb457600080fd5b614bc08c838d016147b2565b909650945060608b0135915080821115614b1657600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1157614c11614bd9565b60405290565b604080519081016001600160401b0381118282101715614c1157614c11614bd9565b604051601f8201601f191681016001600160401b0381118282101715614c6157614c61614bd9565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c69565b60006001600160401b03821115614c9f57614c9f614bd9565b5060051b60200190565b600082601f830112614cba57600080fd5b81356020614ccf614cca83614c86565b614c39565b8083825260208201915060208460051b870101935086841115614cf157600080fd5b602086015b84811015614d16578035614d0981614837565b8352918301918301614cf6565b509695505050505050565b600082601f830112614d3257600080fd5b81356020614d42614cca83614c86565b8083825260208201915060208460051b870101935086841115614d6457600080fd5b602086015b84811015614d165780358352918301918301614d69565b600060e08284031215614d9257600080fd5b614d9a614bef565b9050614da58261484c565b8152614db36020830161484c565b6020820152614dc46040830161484c565b604082015260608201356060820152614ddf60808301614c7b565b608082015260a08201356001600160401b0380821115614dfe57600080fd5b614e0a85838601614ca9565b60a084015260c0840135915080821115614e2357600080fd5b50614e3084828501614d21565b60c08301525092915050565b600060208284031215614e4e57600080fd5b81356001600160401b03811115614e6457600080fd5b614e7084828501614d80565b949350505050565b600060208284031215614e8a57600080fd5b813560ff811681146149c457600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ec157600080fd5b85356001600160401b0380821115614ed857600080fd5b9087019060e0828a031215614eec57600080fd5b90955060208701359080821115614f0257600080fd5b50614f0f888289016147b2565b909550935050604086013591506060860135614f2a81614e9b565b809150509295509295909350565b60008060408385031215614f4b57600080fd5b8235614f5681614837565b91506020830135614f6681614837565b809150509250929050565b600060408284031215614f8357600080fd5b614f8b614c17565b905081356001600160401b0380821115614fa457600080fd5b818401915084601f830112614fb857600080fd5b8135602082821115614fcc57614fcc614bd9565b614fde601f8301601f19168201614c39565b92508183528681838601011115614ff457600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a0868803121561503157600080fd5b853561503c81614837565b9450602086013561504c81614837565b935060408601356001600160401b038082111561506857600080fd5b61507489838a01614f71565b9450606088013591508082111561508a57600080fd5b5061509788828901614f71565b95989497509295608001359392505050565b600080604083850312156150bc57600080fd5b82356150c781614837565b915060208301356001600160401b038111156150e257600080fd5b6150ee85828601614ca9565b9150509250929050565b60008151808452602080850194506020840160005b838110156151295781518752958201959082019060010161510d565b509495945050505050565b6020815260006149c460208301846150f8565b6000806020838503121561515a57600080fd5b82356001600160401b0381111561517057600080fd5b61482b85828601614913565b6000806040838503121561518f57600080fd5b823561519a81614837565b946020939093013593505050565b600080600080608085870312156151be57600080fd5b84356151c981614837565b93506020850135925060408501356151e081614837565b9396929550929360600135925050565b60008151808452602080850194506020840160005b838110156151295781516001600160a01b031687529582019590820190600101615205565b60408152600061523d60408301856151f0565b828103602084015261120f81856150f8565b60008060006060848603121561526457600080fd5b833561526f81614837565b925060208401356001600160401b0381111561528a57600080fd5b61529686828701614f71565b925050604084013590509250925092565b6000606082840312156152b957600080fd5b6149c483836148fb565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261532657600080fd5b9190910192915050565b6000808335601e1984360301811261534757600080fd5b8301803591506001600160401b0382111561536157600080fd5b6020019150600581901b36038213156144cf57600080fd5b60608101823561538881614837565b6001600160a01b0390811683526020840135906153a482614837565b16602083015260408301356153b881614c69565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561540c57600080fd5b81516149c481614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154d057600080fd5b81516149c481614e9b565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261532657600080fd5b60006020828403121561554b57600080fd5b81356149c481614e9b565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a08501526155b160e08501826151f0565b905060c083015184820360c086015261120f82826150f8565b6020815260006149c46020830184615556565b6000602082840312156155ef57600080fd5b5051919050565b600082601f83011261560757600080fd5b81516020615617614cca83614c86565b8083825260208201915060208460051b87010193508684111561563957600080fd5b602086015b84811015614d16578051835291830191830161563e565b6000806040838503121561566857600080fd5b82516001600160401b038082111561567f57600080fd5b818501915085601f83011261569357600080fd5b815160206156a3614cca83614c86565b82815260059290921b840181019181810190898411156156c257600080fd5b948201945b838610156156e95785516156da81614837565b825294820194908201906156c7565b9188015191965090935050508082111561570257600080fd5b506150ee858286016155f6565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261570f565b818103818111156109c2576109c261570f565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157815761578161570f565b5060010190565b828152604060208201526000614e706040830184615556565b6000602082840312156157b357600080fd5b81356149c481614c69565b80546001600160a01b0319166001600160a01b0392909216919091179055565b81356157e981614837565b6157f381836157be565b5060018101602083013561580681614837565b61581081836157be565b50604083013561581f81614c69565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d80565b6020808252606e9082015260008051602061596d83398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b8281526000602060406020840152835180604085015260005b8181101561590a578581018301518582016060015282016158ee565b506000606082860101526060601f19601f830116850101925050509392505050565b60006020828403121561593e57600080fd5b81516001600160e01b0319811681146149c457600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a264697066735822122077e25f9c65861d9bf718b537427551bab355394bebd5f95b15c4df6972929f1b64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0xa82ff9afd8f496c3d6ac40e2a0f282e47488cfc9":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c4565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e1565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610336565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead81600081518110610204576102046103fb565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156102b85783516001600160a01b031683529284019291840191600101610293565b50909695505050505050565b6000602082840312156102d657600080fd5b813561013381610226565b6000825160005b8181101561030257602081860181015185830152016102e8565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033181610226565b919050565b6000602080838503121561034957600080fd5b825167ffffffffffffffff8082111561036157600080fd5b818501915085601f83011261037557600080fd5b81518181111561038757610387610310565b8060051b604051601f19603f830116810181811085821117156103ac576103ac610310565b6040529182528482019250838101850191888311156103ca57600080fd5b938501935b828510156103ef576103e085610326565b845293850193928501926103cf565b98975050505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220d2a1dc3d5b3de166be22fce7e789ceac2302c613380087624652f3f48de1ed0864736f6c63430008180033","storage":{}},"0xb7278a61aa25c888815afc32ad3cc52ff24fe575":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114a7565b60405180910390f35b6100a361009e3660046114e3565b610245565b6040516100879190611641565b6100c36100be3660046116be565b6106c5565b604051610087919061170d565b6100e36100de3660046117a5565b6107d2565b604051610087919061189e565b6101036100fe366004611959565b610eea565b60405161008791906119bc565b61012361011e3660046119f4565b6110a8565b604051610087929190611a2b565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a4c565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a62565b82828151811061022b5761022b611a4c565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a7b565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a7b565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a7b565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a4c565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611a98565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a4c565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a4c565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a7b565b6001600160a01b031681526020018383815181106105b6576105b6611a4c565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a4c565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b28565b6001600160601b031681525085858151811061068257610682611a4c565b6020026020010151828151811061069b5761069b611a4c565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a4c565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a7b565b8282815181106107b2576107b2611a4c565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a7b565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b51565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611b98565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c4f565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611b98565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a4c565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a4c565b905060200201358e88600001518681518110610a9257610a92611a4c565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c78565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a4c565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a4c565b905060200201358d8d8860ff16818110610c2d57610c2d611a4c565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611ca1565b85606001518560ff1681518110610cc057610cc0611a4c565b60200260200101518481518110610cd957610cd9611a4c565b63ffffffff9092166020928302919091019091015282610cf881611cd4565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a4c565b60200260200101518181518110610d8957610d89611a4c565b6020026020010151828281518110610da357610da3611a4c565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a4c565b602002602001018190525050508080610df390611ced565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a7b565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d0c565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611b98565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d36565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611b98565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a4c565b602002602001015187868581518110610ff257610ff2611a4c565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c78565b6001600160c01b031682828151811061108b5761108b611a4c565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a4c565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d36565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611b98565b60008151811061117657611176611a4c565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c78565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a4c565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611cd4565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d55565b909216918061132981611d68565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b91506020838101356001600160401b038111156113f257600080fd5b8401601f8101861361140357600080fd5b803561141661141182611395565b611365565b81815260059190911b8201830190838101908883111561143557600080fd5b928401925b8284101561145c57833561144d81611337565b8252928401929084019061143a565b80955050505050509250929050565b60008151808452602080850194506020840160005b8381101561149c57815187529582019590820190600101611480565b509495945050505050565b6020815260006114ba602083018461146b565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114de816114c1565b919050565b6000806000606084860312156114f857600080fd5b833561150381611337565b92506020848101356001600160401b038082111561152057600080fd5b818701915087601f83011261153457600080fd5b8135818111156115465761154661134f565b611558601f8201601f19168501611365565b9150808252888482850101111561156e57600080fd5b8084840185840137600084828401015250809450505050611591604085016114d3565b90509250925092565b600082825180855260208086019550808260051b8401018186016000805b8581101561163357868403601f19018a52825180518086529086019086860190845b8181101561161e57835180516001600160a01b03168452898101518a8501526040908101516001600160601b031690840152928801926060909201916001016115da565b50509a86019a945050918401916001016115b8565b509198975050505050505050565b6020815260006114ba602083018461159a565b600082601f83011261166557600080fd5b8135602061167561141183611395565b8083825260208201915060208460051b87010193508684111561169757600080fd5b602086015b848110156116b3578035835291830191830161169c565b509695505050505050565b600080604083850312156116d157600080fd5b82356116dc81611337565b915060208301356001600160401b038111156116f757600080fd5b61170385828601611654565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561174e5783516001600160a01b031683529284019291840191600101611729565b50909695505050505050565b60008083601f84011261176c57600080fd5b5081356001600160401b0381111561178357600080fd5b6020830191508360208260051b850101111561179e57600080fd5b9250929050565b600080600080600080608087890312156117be57600080fd5b86356117c981611337565b955060208701356117d9816114c1565b945060408701356001600160401b03808211156117f557600080fd5b818901915089601f83011261180957600080fd5b81358181111561181857600080fd5b8a602082850101111561182a57600080fd5b60208301965080955050606089013591508082111561184857600080fd5b5061185589828a0161175a565b979a9699509497509295939492505050565b60008151808452602080850194506020840160005b8381101561149c57815163ffffffff168752958201959082019060010161187c565b6000602080835283516080828501526118ba60a0850182611867565b905081850151601f19808684030160408701526118d78383611867565b925060408701519150808684030160608701526118f48383611867565b60608801518782038301608089015280518083529194508501925084840190600581901b8501860160005b8281101561194b5784878303018452611939828751611867565b9588019593880193915060010161191f565b509998505050505050505050565b60008060006060848603121561196e57600080fd5b833561197981611337565b925060208401356001600160401b0381111561199457600080fd5b6119a086828701611654565b92505060408401356119b1816114c1565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561174e578351835292840192918401916001016119d8565b600080600060608486031215611a0957600080fd5b8335611a1481611337565b92506020840135915060408401356119b1816114c1565b828152604060208201526000611a44604083018461159a565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7457600080fd5b5051919050565b600060208284031215611a8d57600080fd5b81516114ba81611337565b60006020808385031215611aab57600080fd5b82516001600160401b03811115611ac157600080fd5b8301601f81018513611ad257600080fd5b8051611ae061141182611395565b81815260059190911b82018301908381019087831115611aff57600080fd5b928401925b82841015611b1d57835182529284019290840190611b04565b979650505050505050565b600060208284031215611b3a57600080fd5b81516001600160601b03811681146114ba57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b7e57600080fd5b8260051b8085606085013791909101606001949350505050565b60006020808385031215611bab57600080fd5b82516001600160401b03811115611bc157600080fd5b8301601f81018513611bd257600080fd5b8051611be061141182611395565b81815260059190911b82018301908381019087831115611bff57600080fd5b928401925b82841015611b1d578351611c17816114c1565b82529284019290840190611c04565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c6f604083018486611c26565b95945050505050565b600060208284031215611c8a57600080fd5b81516001600160c01b03811681146114ba57600080fd5b600060208284031215611cb357600080fd5b81516114ba816114c1565b634e487b7160e01b600052601160045260246000fd5b600060018201611ce657611ce6611cbe565b5060010190565b600060ff821660ff8103611d0357611d03611cbe565b60010192915050565b604081526000611d20604083018587611c26565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a44604083018461146b565b8181038181111561133157611331611cbe565b600061ffff808316818103611d7f57611d7f611cbe565b600101939250505056fea26469706673582212202b3e36f430d5f7f12f8124a33676c0954c36bdaf4a71ac7e145cf85fb593480b64736f6c63430008180033","storage":{}},"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea2646970667358221220042ec08fde05948b20d3f0fe8bf03cfe1d6ad33ecfc3fd565cbce702b2daa70b64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000001":"0x000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad788"}},"0xc5a5c42992decbae36851359345fe25997f5c42d":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120001","0x0000000000000000000000000000000000000000000000000000000000000001":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000032":"0x00000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef","0x0000000000000000000000000000000000000000000000000000000000000064":"0x0000000000000000000000000000000000000000000000000de0b6b3a7640000","0x0000000000000000000000000000000000000000000000000000000000000065":"0x00000000000000000000000000000000000000000000003635c9adc5dea00000","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000066":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000097":"0x831f01b2aeb61d5d8c019704e62c25763057a8806c5c790bc8b4c99ee54ac8a7","0x000000000000000000000000000000000000000000000000000000000000009d":"0x000000000000000000000000000000000000000000000000000000000000000a","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000097":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000098":"0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000000000000000000c9":"0xd65ac9700cec4e530497617d02afdf0d5de3ed18466aca1578edcbce0d40ee16","0x00000000000000000000000000000000000000000000000000000000000000cb":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd82","0x3d2729dff03bf559da35a983e55814217363c2a44a7ea59bdf688ab8754ea49d":"0x0000000000000000000000000000000000000000000000000000000000000001","0x6e45a9ad53caf7293849c96e5070a246e20a7cc2986b7660b3fb63e30ab898fc":"0x0000000000000000000000000000000000000000000000000000000000000000","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122082d0bf2d943ad14055e4e88fc955638b565f43d854afdcd3d6cd966fe8c2201a64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000001":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x723077b8a1b173adc35e5f0e7e3662fd1208212cb629f9c128551ea7168da722":"0x0000000000000000000000000000000000000000000000000000000000000001"}},"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266":{"nonce":58,"balance":"0x21e0b9d8ad724e7743e","code":"0x","storage":{}},"0xf5059a5d33d5853360d16c683c16e67980206f36":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49","0x3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff":"0x0000000000000000000000000000000000000000000000000000000000000001","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042","0xcfb339bd1c51c488f6134f4ac63d1594afad827b3401c3fc51ed1da74a8ca14e":"0x0000000000000000000000000000000000000000000000000000000000000007"}}},"best_block_number":"0xe","blocks":[{"header":{"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x0","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x66f70a90","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0x10993afddf3e72f34e40bd17ed8c8a561bdbcf5de04e195d668521ba250d94e0","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xc6379f062f108da36cf59c0ba5979aef7ff4182d7fe5b3b5debc589291b028e4","transactionsRoot":"0xa6399bd95b6e787bdcd66b35444f730b3dbebcd3e072867a2cfb0e21defd0dcf","receiptsRoot":"0x6838a43814fd8c4265ee16a8bbe5a176a71381acbed798ac099c9559e9d72629","logsBloom":"0x00000000000000000000000001000000400000000000000000800000000000000000001000000000000400000000000000000100000000002000000000000000000000000800000000000000000002000001000240000000000000400000000008000000828000000000010100000800000000000000000000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000104000000000000000000000000000000000020000000200000000800040000100000002000000200000001000020020000000000000000000000000000000000000000000000000000000000001000","difficulty":"0x0","number":"0x8","gasLimit":"0x1c9c380","gasUsed":"0x4a90bc","timestamp":"0x6706bcf9","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1af373ea","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x30","gasLimit":"0x5ca784","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6101806040523480156200001257600080fd5b506040516200582c3803806200582c833981016040819052620000359162000419565b6001600160a01b0380851660805280841660a05280831660c052811660e05281848482846200006362000341565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e7919062000481565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000140573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000166919062000481565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e8919062000481565b6001600160a01b0390811661016052851690506200023d57604051630b0f5aa160e11b815260206004820152600c60248201526b6176734469726563746f727960a01b60448201526064015b60405180910390fd5b6001600160a01b0383166200028b57604051630b0f5aa160e11b81526020600482015260126024820152713932bbb0b93239a1b7b7b93234b730ba37b960711b604482015260640162000234565b6001600160a01b038216620002e457604051630b0f5aa160e11b815260206004820152601360248201527f7265676973747279436f6f7264696e61746f7200000000000000000000000000604482015260640162000234565b6001600160a01b0381166200032d57604051630b0f5aa160e11b815260206004820152600d60248201526c7374616b65526567697374727960981b604482015260640162000234565b6200033762000341565b50505050620004a8565b600054610100900460ff1615620003ab5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840162000234565b60005460ff9081161015620003fe576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200041657600080fd5b50565b600080600080608085870312156200043057600080fd5b84516200043d8162000400565b6020860151909450620004508162000400565b6040860151909350620004638162000400565b6060860151909250620004768162000400565b939692955090935050565b6000602082840312156200049457600080fd5b8151620004a18162000400565b9392505050565b60805160a05160c05160e05161010051610120516101405161016051615276620005b66000396000818161065401526117dd01526000818161039701526119f00152600081816103cb01528181611bdd0152611dcd0152600081816104320152818161100f015281816114a30152818161164a0152611891015260008181610d4401528181610e9501528181610f2c01528181612b4b01528181612cc40152612d63015260008181610b6b01528181610bfa01528181610c7a015281816121660152818161223201528181612a860152612c1f01526000818161311a015281816131d601526132b90152600081816103fc015281816121ba0152818161228e015261230d01526152766000f3fe6080604052600436106101fd5760003560e01c806395c6d6041161010d578063d66eaabd116100a0578063f474b5201161006f578063f474b520146106ab578063f9120af6146106d8578063fa534dc0146106f8578063fc299dee14610718578063fce36c7d1461073857600080fd5b8063d66eaabd1461062f578063df5cf72314610642578063e481af9d14610676578063f2fde38b1461068b57600080fd5b8063ab21739a116100dc578063ab21739a1461056b578063b099627e1461058b578063b98d0908146105f5578063c0c53b8b1461060f57600080fd5b806395c6d604146104eb5780639926ee7d1461050b578063a364f4da1461052b578063a98fb3551461054b57600080fd5b80634ae07c37116101905780636d14a9871161015f5780636d14a9871461042057806370a0823114610454578063715018a614610498578063800fb61f146104ad5780638da5cb5b146104cd57600080fd5b80634ae07c37146103575780635df459461461038557806368304835146103b95780636b3aa72e146103ed57600080fd5b80633bc28c8c116101cc5780633bc28c8c146102cc578063416c7e5e146102ec5780634223d5511461030c5780634a5bf6321461031f57600080fd5b806306045a9114610213578063171f1d5b146102485780632e1a7d4d1461027f57806333cfb7b71461029f57600080fd5b3661020e5761020c3334610758565b005b600080fd5b34801561021f57600080fd5b5061023361022e366004614234565b6107ed565b60405190151581526020015b60405180910390f35b34801561025457600080fd5b50610268610263366004614386565b6108e4565b60408051921515835290151560208301520161023f565b34801561028b57600080fd5b5061020c61029a3660046143d7565b610a6e565b3480156102ab57600080fd5b506102bf6102ba3660046143f0565b610b46565b60405161023f919061440d565b3480156102d857600080fd5b5061020c6102e73660046143f0565b610ff9565b3480156102f857600080fd5b5061020c610307366004614468565b61100d565b61020c61031a3660046143f0565b611144565b34801561032b57600080fd5b5060cb5461033f906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b34801561036357600080fd5b50610377610372366004614743565b61114e565b60405161023f9291906147de565b34801561039157600080fd5b5061033f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c557600080fd5b5061033f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103f957600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061033f565b34801561042c57600080fd5b5061033f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561046057600080fd5b5061048a61046f3660046143f0565b6001600160a01b0316600090815260ca602052604090205490565b60405190815260200161023f565b3480156104a457600080fd5b5061020c612082565b3480156104b957600080fd5b5061020c6104c83660046143f0565b612096565b3480156104d957600080fd5b506033546001600160a01b031661033f565b3480156104f757600080fd5b5061023361050636600461486f565b612136565b34801561051757600080fd5b5061020c6105263660046148ba565b61215b565b34801561053757600080fd5b5061020c6105463660046143f0565b612227565b34801561055757600080fd5b5061020c610566366004614965565b6122ee565b34801561057757600080fd5b5061020c6105863660046149b5565b612342565b34801561059757600080fd5b506105d36105a63660046143d7565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff909416845291151560208401529082015260600161023f565b34801561060157600080fd5b506097546102339060ff1681565b34801561061b57600080fd5b5061020c61062a3660046149dc565b612701565b61020c61063d366004614a27565b6128c6565b34801561064e57600080fd5b5061033f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561068257600080fd5b506102bf612a80565b34801561069757600080fd5b5061020c6106a63660046143f0565b612e2c565b3480156106b757600080fd5b5061048a6106c63660046143f0565b60ca6020526000908152604090205481565b3480156106e457600080fd5b5061020c6106f33660046143f0565b612ea2565b34801561070457600080fd5b50610233610713366004614a79565b612ecc565b34801561072457600080fd5b5060655461033f906001600160a01b031681565b34801561074457600080fd5b5061020c610753366004614af6565b612f41565b8060000361078157604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca6020526040812080548392906107a9908490614b80565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a25050565b6000806001600160a01b038316610805575084610831565b8583604051602001610818929190614b93565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff1690036108565760009150506108d8565b600081815260c96020526040902054640100000000900460ff1661087e5760009150506108d8565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f19818403018152919052805160208201209091506108d2878983896132f0565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018787600001518860200151886000015160006002811061092c5761092c614bae565b60200201518951600160200201518a6020015160006002811061095157610951614bae565b60200201518b6020015160016002811061096d5761096d614bae565b602090810291909101518c518d8301516040516109ca9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6109ed9190614bc4565b9050610a60610a066109ff8884613308565b8690613399565b610a0e61342e565b610a56610a4785610a41604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613308565b610a508c6134ee565b90613399565b886201d4c061357d565b909890975095505050505050565b33600090815260ca6020526040902054811115610abf5733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018390526044820152606401610778565b33600090815260ca602052604081208054839290610ade908490614be6565b909155505033600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610b42573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd69190614bf9565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c659190614c12565b90506001600160c01b0381161580610cff57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190614c3b565b60ff16155b15610d1f5760408051600080825260208201909252905b50949350505050565b6000610d33826001600160c01b0316613797565b90506000805b8251811015610dff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610d8357610d83614bae565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610deb9190614bf9565b610df59083614b80565b9150600101610d39565b506000816001600160401b03811115610e1a57610e1a614110565b604051908082528060200260200182016040528015610e43578160200160208202803683370190505b5090506000805b8451811015610fec576000858281518110610e6757610e67614bae565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015610edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f009190614bf9565b905060005b81811015610fe1576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015610f7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9e9190614c73565b60000151868681518110610fb457610fb4614bae565b6001600160a01b039092166020928302919091019091015284610fd681614cb4565b955050600101610f05565b505050600101610e4a565b5090979650505050505050565b611001613859565b61100a816138b3565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108f9190614ccd565b6001600160a01b0316336001600160a01b03161461113b5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610778565b61100a8161391c565b61100a8134610758565b604080518082019091526060808252602082015260008260400151516040518060400160405280600181526020016000815250511480156111aa57508260a0015151604051806040016040528060018152602001600081525051145b80156111d157508260c0015151604051806040016040528060018152602001600081525051145b80156111f857508260e0015151604051806040016040528060018152602001600081525051145b6112625760405162461bcd60e51b8152602060048201526041602482015260008051602061522183398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610778565b825151602084015151146112da5760405162461bcd60e51b815260206004820152604460248201819052600080516020615221833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610778565b4363ffffffff168463ffffffff16106113495760405162461bcd60e51b815260206004820152603c602482015260008051602061522183398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610778565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561140a5761140a614110565b604051908082528060200260200182016040528015611433578160200160208202803683370190505b5081526020860151516001600160401b0381111561145357611453614110565b60405190808252806020026020018201604052801561147c578160200160208202803683370190505b508160200181905250600061152860405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115239190614c3b565b613963565b905060005b8760200151518110156117b9576115728860200151828151811061155357611553614bae565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061158857611588614bae565b602090810291909101015280156116485760208301516115a9600183614be6565b815181106115b9576115b9614bae565b602002602001015160001c836020015182815181106115da576115da614bae565b602002602001015160001c11611648576040805162461bcd60e51b815260206004820152602481019190915260008051602061522183398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610778565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec63518460200151838151811061168d5761168d614bae565b60200260200101518b8b6000015185815181106116ac576116ac614bae565b60200260200101516040518463ffffffff1660e01b81526004016116e99392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a9190614c12565b6001600160c01b03168360000151828151811061174957611749614bae565b6020026020010181815250506117af6109ff611783848660000151858151811061177557611775614bae565b6020026020010151166139f6565b8a60200151848151811061179957611799614bae565b6020026020010151613a2190919063ffffffff16565b945060010161152d565b50506117c483613b04565b60975490935060ff166000816117db57600061185d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185d9190614bf9565b905060005b604051806040016040528060018152602001600081525051811015611f535782156119ee578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c42604051806040016040528060018152602001600081525085815181106118e6576118e6614bae565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561192a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194e9190614bf9565b6119589190614b80565b116119ee5760405162461bcd60e51b8152602060048201526066602482015260008051602061522183398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610778565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611a4557611a45614bae565b602001015160f81c60f81b60f81c8c8c60a001518581518110611a6a57611a6a614bae565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aea9190614cea565b6001600160401b031916611b0d8a60400151838151811061155357611553614bae565b67ffffffffffffffff191614611ba95760405162461bcd60e51b8152602060048201526061602482015260008051602061522183398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610778565b611bd989604001518281518110611bc257611bc2614bae565b60200260200101518761339990919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611c3257611c32614bae565b602001015160f81c60f81b60f81c8c8c60c001518581518110611c5757611c57614bae565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd79190614d15565b85602001518281518110611ced57611ced614bae565b6001600160601b03909216602092830291909101820152850151805182908110611d1957611d19614bae565b602002602001015185600001518281518110611d3757611d37614bae565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611f4957611dc686600001518281518110611d8157611d81614bae565b602002602001015160405180604001604052806001815260200160008152508581518110611db157611db1614bae565b016020015160f81c60ff161c60019081161490565b15611f41577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611e2257611e22614bae565b602001015160f81c60f81b60f81c8e89602001518581518110611e4757611e47614bae565b60200260200101518f60e001518881518110611e6557611e65614bae565b60200260200101518781518110611e7e57611e7e614bae565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f069190614d15565b8751805185908110611f1a57611f1a614bae565b60200260200101818151611f2e9190614d32565b6001600160601b03169052506001909101905b600101611d5b565b5050600101611862565b505050600080611f6d8a868a606001518b608001516108e4565b9150915081611fde5760405162461bcd60e51b8152602060048201526043602482015260008051602061522183398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610778565b8061203f5760405162461bcd60e51b8152602060048201526039602482015260008051602061522183398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610778565b5050600087826020015160405160200161205a929190614d59565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b61208a613859565b6120946000613b9f565b565b600054600290610100900460ff161580156120b8575060005460ff8083169116105b6120d45760405162461bcd60e51b815260040161077890614da1565b6000805461ffff191660ff8316176101001790556120f182612ea2565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000818484604051612149929190614def565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146121a35760405162461bcd60e51b815260040161077890614dff565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906121f19085908590600401614ebd565b600060405180830381600087803b15801561220b57600080fd5b505af115801561221f573d6000803e3d6000fd5b505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461226f5760405162461bcd60e51b815260040161077890614dff565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b5050505050565b6122f6613859565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb355906122b9908490600401614f08565b60cb546001600160a01b031633146123825760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610778565b60005a90506000848460405160200161239c929190614b93565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff90911690036123f1576040516311cb69a760e11b815260048101839052602401610778565b8054640100000000900460ff161561241f57604051634e78d7f960e11b815260048101839052602401610778565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca602052604090205410156124a25760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610778565b80546000906124b990849063ffffffff168761114e565b509050604360ff1681602001516000815181106124d8576124d8614bae565b60200260200101516124ea9190614f1b565b6001600160601b03166064826000015160008151811061250c5761250c614bae565b60200260200101516001600160601b03166125279190614f3e565b10156125ba576064816000015160008151811061254657612546614bae565b60200260200101516001600160601b03166125619190614f3e565b604360ff16826020015160008151811061257d5761257d614bae565b602002602001015161258f9190614f1b565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610778565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a6126069087614be6565b6126139062011170614b80565b61261d9190614f3e565b9050826001015481111561265457600183015460405163437e283f60e11b8152600481019190915260248101829052604401610778565b6001600160a01b038716600090815260ca60205260408120805483929061267c908490614be6565b90915550506001600160a01b038716600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156126f6573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff16158080156127215750600054600160ff909116105b8061273b5750303b15801561273b575060005460ff166001145b6127575760405162461bcd60e51b815260040161077890614da1565b6000805460ff19166001179055801561277a576000805461ff0019166101001790555b6001600160a01b0384166127c057604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610778565b6001600160a01b03831661280a57604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610778565b6001600160a01b03821661285557604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610778565b61285f8484613bf1565b60cb80546001600160a01b0319166001600160a01b03841617905580156128c0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600084336040516020016128db929190614b93565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff161561292a57604051630c40bc4360e21b815260048101829052602401610778565b34156129875733600090815260ca60205260408120805434929061294f908490614b80565b909155505033600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a25b33600090815260ca60205260409020548211156129d85733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610778565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612a70913391908a908a908a90614f55565b60405180910390a2505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b069190614c3b565b60ff16905080600003612b2757505060408051600081526020810190915290565b6000805b82811015612bd257604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbe9190614bf9565b612bc89083614b80565b9150600101612b2b565b506000816001600160401b03811115612bed57612bed614110565b604051908082528060200260200182016040528015612c16578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f9190614c3b565b60ff16811015612e2257604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d379190614bf9565b905060005b81811015612e18576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd59190614c73565b60000151858581518110612deb57612deb614bae565b6001600160a01b039092166020928302919091019091015283612e0d81614cb4565b945050600101612d3c565b5050600101612c1d565b5090949350505050565b612e34613859565b6001600160a01b038116612e995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610778565b61100a81613b9f565b612eaa613859565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190612f00908b908b908b908b908b908b908b908b90600401614fac565b602060405180830381865afa158015612f1d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d8919061500e565b6065546001600160a01b03163314612fd65760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610778565b60005b818110156132a157828282818110612ff357612ff3614bae565b9050602002810190613005919061502b565b6130169060408101906020016143f0565b6001600160a01b03166323b872dd333086868681811061303857613038614bae565b905060200281019061304a919061502b565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156130a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c5919061500e565b5060008383838181106130da576130da614bae565b90506020028101906130ec919061502b565b6130fd9060408101906020016143f0565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561316b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318f9190614bf9565b90508383838181106131a3576131a3614bae565b90506020028101906131b5919061502b565b6131c69060408101906020016143f0565b6001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000008387878781811061320857613208614bae565b905060200281019061321a919061502b565b604001356132289190614b80565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613273573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613297919061500e565b5050600101612fd9565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906121f190859085906004016150b1565b6000836132fe868585613c6e565b1495945050505050565b604080518082019091526000808252602082015261332461401e565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061335357fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610778565b505092915050565b60408051808201909152600080825260208201526133b561403c565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806133f057fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610778565b61343661405a565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201909152600080825260208201526000808061351e6000805160206151e183398151915286614bc4565b90505b61352a81613d6b565b90935091506000805160206151e18339815191528283098303613563576040805180820190915290815260208101919091529392505050565b6000805160206151e1833981519152600182089050613521565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906135af61407f565b60005b600281101561376a5760006135c8826006614f3e565b90508482600281106135dc576135dc614bae565b602002015151836135ee836000614b80565b600c81106135fe576135fe614bae565b602002015284826002811061361557613615614bae565b6020020151602001518382600161362c9190614b80565b600c811061363c5761363c614bae565b602002015283826002811061365357613653614bae565b6020020151515183613666836002614b80565b600c811061367657613676614bae565b602002015283826002811061368d5761368d614bae565b60200201515160016020020151836136a6836003614b80565b600c81106136b6576136b6614bae565b60200201528382600281106136cd576136cd614bae565b6020020151602001516000600281106136e8576136e8614bae565b6020020151836136f9836004614b80565b600c811061370957613709614bae565b602002015283826002811061372057613720614bae565b60200201516020015160016002811061373b5761373b614bae565b60200201518361374c836005614b80565b600c811061375c5761375c614bae565b6020020152506001016135b2565b5061377361409e565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b60606000806137a5846139f6565b61ffff166001600160401b038111156137c0576137c0614110565b6040519080825280601f01601f1916602001820160405280156137ea576020820181803683370190505b5090506000805b825182108015613802575061010081105b15612e22576001811b935085841615613849578060f81b83838151811061382b5761382b614bae565b60200101906001600160f81b031916908160001a9053508160010191505b61385281614cb4565b90506137f1565b6033546001600160a01b031633146120945760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610778565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061396f84613ded565b9050808360ff166001901b116139ed5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610778565b90505b92915050565b6000805b82156139f057613a0b600184614be6565b9092169180613a19816151bf565b9150506139fa565b60408051808201909152600080825260208201526102008261ffff1610613a7d5760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610778565b8161ffff16600103613a905750816139f0565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613af957600161ffff871660ff83161c81169003613adc57613ad98484613399565b93505b613ae68384613399565b92506201fffe600192831b169101613aac565b509195945050505050565b60408051808201909152600080825260208201528151158015613b2957506020820151155b15613b47575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206151e18339815191528460200151613b7a9190614bc4565b613b92906000805160206151e1833981519152614be6565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613c5c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610778565b613c6582613b9f565b610b42816138b3565b600060208451613c7e9190614bc4565b15613d055760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610778565b8260205b85518111610d1657613d1c600285614bc4565b600003613d4057816000528086015160205260406000209150600284049350613d59565b8086015160005281602052604060002091506002840493505b613d64602082614b80565b9050613d09565b600080806000805160206151e183398151915260036000805160206151e1833981519152866000805160206151e1833981519152888909090890506000613de1827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206151e1833981519152613f75565b91959194509092505050565b600061010082511115613e765760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610778565b8151600003613e8757506000919050565b60008083600081518110613e9d57613e9d614bae565b0160200151600160f89190911c81901b92505b8451811015613f6c57848181518110613ecb57613ecb614bae565b0160200151600160f89190911c1b9150828211613f605760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610778565b91811791600101613eb0565b50909392505050565b600080613f8061409e565b613f886140bc565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fc557fe5b50826140135760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610778565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061406d6140da565b815260200161407a6140da565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613b9a57600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561414857614148614110565b60405290565b60405161010081016001600160401b038111828210171561414857614148614110565b604051601f8201601f191681016001600160401b038111828210171561419957614199614110565b604052919050565b60006001600160401b038311156141ba576141ba614110565b6141cd601f8401601f1916602001614171565b90508281528383830111156141e157600080fd5b828260208301376000602084830101529392505050565b600082601f83011261420957600080fd5b614218838335602085016141a1565b9392505050565b6001600160a01b038116811461100a57600080fd5b600080600080600080600080610100898b03121561425157600080fd5b88359750602089013596506040890135955061426f60608a016140f8565b94506080890135935060a08901356001600160401b0381111561429157600080fd5b61429d8b828c016141f8565b93505060c0890135915060e08901356142b58161421f565b809150509295985092959890939650565b6000604082840312156142d857600080fd5b6142e0614126565b9050813581526020820135602082015292915050565b600082601f83011261430757600080fd5b61430f614126565b80604084018581111561432157600080fd5b845b8181101561433b578035845260209384019301614323565b509095945050505050565b60006080828403121561435857600080fd5b614360614126565b905061436c83836142f6565b815261437b83604084016142f6565b602082015292915050565b600080600080610120858703121561439d57600080fd5b843593506143ae86602087016142c6565b92506143bd8660608701614346565b91506143cc8660e087016142c6565b905092959194509250565b6000602082840312156143e957600080fd5b5035919050565b60006020828403121561440257600080fd5b81356139ed8161421f565b6020808252825182820181905260009190848201906040850190845b8181101561444e5783516001600160a01b031683529284019291840191600101614429565b50909695505050505050565b801515811461100a57600080fd5b60006020828403121561447a57600080fd5b81356139ed8161445a565b803563ffffffff81168114613b9a57600080fd5b60006001600160401b038211156144b2576144b2614110565b5060051b60200190565b600082601f8301126144cd57600080fd5b813560206144e26144dd83614499565b614171565b8083825260208201915060208460051b87010193508684111561450457600080fd5b602086015b848110156145275761451a81614485565b8352918301918301614509565b509695505050505050565b600082601f83011261454357600080fd5b813560206145536144dd83614499565b8083825260208201915060208460061b87010193508684111561457557600080fd5b602086015b848110156145275761458c88826142c6565b83529183019160400161457a565b600082601f8301126145ab57600080fd5b813560206145bb6144dd83614499565b82815260059290921b840181019181810190868411156145da57600080fd5b8286015b848110156145275780356001600160401b038111156145fd5760008081fd5b61460b8986838b01016144bc565b8452509183019183016145de565b6000610180828403121561462c57600080fd5b61463461414e565b905081356001600160401b038082111561464d57600080fd5b614659858386016144bc565b8352602084013591508082111561466f57600080fd5b61467b85838601614532565b6020840152604084013591508082111561469457600080fd5b6146a085838601614532565b60408401526146b28560608601614346565b60608401526146c48560e086016142c6565b60808401526101208401359150808211156146de57600080fd5b6146ea858386016144bc565b60a084015261014084013591508082111561470457600080fd5b614710858386016144bc565b60c084015261016084013591508082111561472a57600080fd5b506147378482850161459a565b60e08301525092915050565b60008060006060848603121561475857600080fd5b8335925061476860208501614485565b915060408401356001600160401b0381111561478357600080fd5b61478f86828701614619565b9150509250925092565b60008151808452602080850194506020840160005b838110156147d35781516001600160601b0316875295820195908201906001016147ae565b509495945050505050565b60408152600083516040808401526147f96080840182614799565b90506020850151603f198483030160608501526148168282614799565b925050508260208301529392505050565b60008083601f84011261483957600080fd5b5081356001600160401b0381111561485057600080fd5b60208301915083602082850101111561486857600080fd5b9250929050565b60008060006040848603121561488457600080fd5b83356001600160401b0381111561489a57600080fd5b6148a686828701614827565b909790965060209590950135949350505050565b600080604083850312156148cd57600080fd5b82356148d88161421f565b915060208301356001600160401b03808211156148f457600080fd5b908401906060828703121561490857600080fd5b60405160608101818110838211171561492357614923614110565b60405282358281111561493557600080fd5b614941888286016141f8565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561497757600080fd5b81356001600160401b0381111561498d57600080fd5b8201601f8101841361499e57600080fd5b6149ad848235602084016141a1565b949350505050565b6000806000606084860312156149ca57600080fd5b8335925060208401356147688161421f565b6000806000606084860312156149f157600080fd5b83356149fc8161421f565b92506020840135614a0c8161421f565b91506040840135614a1c8161421f565b809150509250925092565b60008060008060608587031215614a3d57600080fd5b8435935060208501356001600160401b03811115614a5a57600080fd5b614a6687828801614827565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614a9457600080fd5b873596506020880135955060408801359450614ab2606089016140f8565b93506080880135925060a08801356001600160401b03811115614ad457600080fd5b614ae08a828b016141f8565b92505060c0880135905092959891949750929550565b60008060208385031215614b0957600080fd5b82356001600160401b0380821115614b2057600080fd5b818501915085601f830112614b3457600080fd5b813581811115614b4357600080fd5b8660208260051b8501011115614b5857600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156139f0576139f0614b6a565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614be157634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156139f0576139f0614b6a565b600060208284031215614c0b57600080fd5b5051919050565b600060208284031215614c2457600080fd5b81516001600160c01b03811681146139ed57600080fd5b600060208284031215614c4d57600080fd5b815160ff811681146139ed57600080fd5b6001600160601b038116811461100a57600080fd5b600060408284031215614c8557600080fd5b614c8d614126565b8251614c988161421f565b81526020830151614ca881614c5e565b60208201529392505050565b600060018201614cc657614cc6614b6a565b5060010190565b600060208284031215614cdf57600080fd5b81516139ed8161421f565b600060208284031215614cfc57600080fd5b815167ffffffffffffffff19811681146139ed57600080fd5b600060208284031215614d2757600080fd5b81516139ed81614c5e565b6001600160601b03828116828216039080821115614d5257614d52614b6a565b5092915050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b83811015614d9457815185529382019390820190600101614d78565b5092979650505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015614e9d57602081850181015186830182015201614e81565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b0383168152604060208201526000825160606040840152614ee760a0840182614e77565b90506020840151606084015260408401516080840152809150509392505050565b6020815260006142186020830184614e77565b6001600160601b0381811683821602808216919082811461339157613391614b6a565b80820281158282048414176139f0576139f0614b6a565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b60006101008a83528960208401528860408401526001600160601b0319881660608401528660808401528060a0840152614fe881840187614e77565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b60006020828403121561502057600080fd5b81516139ed8161445a565b60008235609e1983360301811261504157600080fd5b9190910192915050565b8035613b9a8161421f565b8183526000602080850194508260005b858110156147d35781356150798161421f565b6001600160a01b031687528183013561509181614c5e565b6001600160601b0316878401526040968701969190910190600101615066565b60208082528181018390526000906040808401600586901b8501820187855b888110156151b157878303603f190184528135368b9003609e190181126150f657600080fd5b8a0160a0813536839003601e1901811261510f57600080fd5b820188810190356001600160401b0381111561512a57600080fd5b8060061b360382131561513c57600080fd5b82875261514c8388018284615056565b9250505061515b88830161504b565b6001600160a01b0316888601528187013587860152606061517d818401614485565b63ffffffff16908601526080615194838201614485565b63ffffffff169501949094525092850192908501906001016150d0565b509098975050505050505050565b600061ffff8083168181036151d6576151d6614b6a565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a264697066735822122033c0c7e49fb5de5099ecf188c45e1a03d3d3ee543f278b51e29defde53c95db164736f6c634300081800330000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","r":"0x70c00d7f9bc5d37d6819dada7c95bbf4994771384072dafcc105f6946b213338","s":"0x793d1465dbc0557ef4d6e383379e2e1642eeb7d541103b92ff78fd9245c6543c","yParity":"0x1","hash":"0xbc7967bc81e805ffd19906d9334f5742363096234ea2cdd8177ee5fda857e708"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x31","gasLimit":"0x30e50","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000064c0c53b8b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a6500000000000000000000000000000000000000000000000000000000","r":"0x2c7e808047bcfc6738a3841cc0ef647a7851e88b683cf56c7b30a205f617bef8","s":"0x72745f5a5b3036364c9600b87b0f78d6a8ea3b9d07de045eb8d81b8ae163391d","yParity":"0x0","hash":"0xb79129a1bcaced66b498a596a000f6c1287c9e51b067424e38572ea6782cf0ba"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x32","gasLimit":"0xfce1","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","value":"0x0","accessList":[],"input":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","r":"0x366400c347f2e189bd169c625e5e6fb847911eb3e6937df408e5dd710fb596ad","s":"0x7696fe3db7362fa87631a87a05e36f1f29ba35b75df42428ef7820e2168cc2b4","yParity":"0x0","hash":"0x3b5c19befab3a5ac976428f286d109add2b0071137c26fc02d8663f2948914bc"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x33","gasLimit":"0xb2fa","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","value":"0x0","accessList":[],"input":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x90dcf40fac3bd3bc84c5de77b7be73a9000e03dd71eaaa9de36cb38f0c1d6a72","s":"0x744a735ca78476fdd39a4ca426d287a16c228dedbf93a47c395a8e4747346335","yParity":"0x0","hash":"0xd3871eb6a2abee19230609004acda2e37090663ebffa73f1cc1de44467665fda"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x569d170492b4479404a15081b9c0586140961739eee97878acb1017512056a08","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xaca90ae355bb795be46c6cc135f30c6c788731f6d1e48b24ffc6a90d9442005a","transactionsRoot":"0x641b83ff34d61c95ba624d73a08bb077bef1f5f31b6b555c6ceeeca4ab1e8bde","receiptsRoot":"0x2bef8b659656f30e49224194cab783e5830bd0cd5aa2ebf1836c7a67d0d84730","logsBloom":"0x00000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000004801000000000000000","difficulty":"0x0","number":"0x2","gasLimit":"0x1c9c380","gasUsed":"0x528fa","timestamp":"0x66f70a99","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x345fa48b","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1","gasLimit":"0x6b49c","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b5060405161074538038061074583398101604081905261002f91610259565b60005b825181101561006d576100658382815181106100505761005061032f565b6020026020010151600161007e60201b60201c565b600101610032565b5061007781610150565b5050610345565b6001600160a01b0382166100ef5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b60648201526084015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b0381166101be5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b60648201526084016100e6565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b038116811461025457600080fd5b919050565b6000806040838503121561026c57600080fd5b82516001600160401b038082111561028357600080fd5b818501915085601f83011261029757600080fd5b81516020828211156102ab576102ab610227565b8160051b604051601f19603f830116810181811086821117156102d0576102d0610227565b6040529283528183019350848101820192898411156102ee57600080fd5b948201945b83861015610313576103048661023d565b855294820194938201936102f3565b9650610322905087820161023d565b9450505050509250929050565b634e487b7160e01b600052603260045260246000fd5b6103f1806103546000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122082d0bf2d943ad14055e4e88fc955638b565f43d854afdcd3d6cd966fe8c2201a64736f6c634300081800330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000003000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x12fc79a3772c92ab4df5bd05a47021454c416e35ae7add73f8164d954819b5b3","s":"0x7e328ce431f086f345c778bee14663d427afca40fc358a8bab6477ee3547b546","yParity":"0x0","hash":"0x349f5791ce5597d671bfc13b1e0237de0732d456e59400e3416a0fda4c213de9"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xb0fe348b1cf390acbcf2589531dd83450ef6f5d45af32b4426b0eda416c91c22","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xac4cdb1d9d63a10782efce83339bad1cd8ea6d278dc07951c7963991c3dd46bf","transactionsRoot":"0xd20b6b1621cce5f8a2f96bf1a7b10a4aac13487765ba7bed396d3ed279328780","receiptsRoot":"0xfe09e622ca624e943aa9d1af3ce1bda05087eac60b1e7d97c00efd7c127479d5","logsBloom":"0x00000000000000000000000000000000400000000000000000800000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000002200001000000000400000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400002000000000000000000000000001000000000020000000200000000000040000040000002000000001000000000020000000000080000000000000000000000000000000000000000000000400000000","difficulty":"0x0","number":"0xd","gasLimit":"0x1c9c380","gasUsed":"0x39702","timestamp":"0x6706bcfe","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef639ed","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x38","gasLimit":"0x4aa3e","maxFeePerGas":"0x2669445d","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60806040526040516104d43803806104d4833981016040819052610022916102d1565b61002e82826000610035565b50506103ee565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104ad60279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6101e85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610136565b600080856001600160a01b031685604051610203919061039f565b600060405180830381855af49150503d806000811461023e576040519150601f19603f3d011682016040523d82523d6000602084013e610243565b606091505b50909250905061025482828661025e565b9695505050505050565b6060831561026d5750816100c6565b82511561027d5782518084602001fd5b8160405162461bcd60e51b815260040161013691906103bb565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102c85781810151838201526020016102b0565b50506000910152565b600080604083850312156102e457600080fd5b82516001600160a01b03811681146102fb57600080fd5b60208401519092506001600160401b038082111561031857600080fd5b818501915085601f83011261032c57600080fd5b81518181111561033e5761033e610297565b604051601f8201601f19908116603f0116810190838211818310171561036657610366610297565b8160405282815288602084870101111561037f57600080fd5b6103908360208301602088016102ad565b80955050505050509250929050565b600082516103b18184602087016102ad565b9190910192915050565b60208152600082518060208401526103da8160408501602087016102ad565b601f01601f19169190910160400192915050565b60b1806103fc6000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212201b5f899d9100d05ffd16b26a8e94bf20e28dd085fba06b911d8ef847c76d3bf864736f6c63430008180033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000064c0c53b8b0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e800000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc00000000000000000000000000000000000000000000000000000000","r":"0x1f9f5295a42e4143ca4d9577d2b03b5303435d1820b6680e5c3179f366b822c","s":"0x4b5233fb379bcc5fae5086c2e14c8cebda8c6701b4e1ba29768733f485475cd8","yParity":"0x0","hash":"0x0fc9d21a7fccabb61343e067ec11d580f22dbd1b540ecd5120f805f6768889c4"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x607eb9efb50db52a9d3d96804c25e1b98dc83a5e2438c1658ffebe9f7c9193fb","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xb1201c3d0d3bd997d37d8ed7000a53e2457a9107b88758e79c923e63d84681ea","transactionsRoot":"0xbf4b8ae64dc8ade25fe2f9bac39b247732a1911c6a8f037cdb6061229dae5a8d","receiptsRoot":"0xce2d4d353c880356c482491b31c44876645a43d9137b3b189db3fcac0e89dce5","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x14","gasLimit":"0x1c9c380","gasUsed":"0x64cb","timestamp":"0x66f70aab","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x660862f","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1f","gasLimit":"0x9368","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x51fdc1671286a48495d3af4d1b5fd6bad2e3d25fbf027be013a666f3b5e698bc","s":"0x3bfabc59a357de3c51aed3025d9924e12f8c7b589027430904c137a74f498ca6","yParity":"0x0","hash":"0x046411743d2c08a8f69f7117e4aed15eb84999f401e950cafac8436c9d2c04d8"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xe1f6cd22f9375fef53501446ba8ccbad8aa1109ada934708254fd611c48e641c","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x3ac2eb0697cce2295807854c1e073d8fd07d271b3083d65949c81a962596ae1d","transactionsRoot":"0xf33bbfcb9e3f417e8cb14193c4ffdcf367e582b87b1fe229b154bcedf9f3a438","receiptsRoot":"0x3545e5402e70d83d3c69d8c4c8e4d80b4b831bd83f81e5d8937173ef806d5b4b","logsBloom":"0x00000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000000000000000000000000800400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000","difficulty":"0x0","number":"0x8","gasLimit":"0x1c9c380","gasUsed":"0x45944a","timestamp":"0x66f70a9f","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1b047567","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xd","gasLimit":"0x37fd2f","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6101006040523480156200001257600080fd5b506040516200337938038062003379833981016040819052620000359162000140565b6001600160a01b0380841660805280831660a052811660c0526200005862000065565b50504660e0525062000194565b600054610100900460ff1615620000d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000125576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013d57600080fd5b50565b6000806000606084860312156200015657600080fd5b8351620001638162000127565b6020850151909350620001768162000127565b6040850151909250620001898162000127565b809150509250925092565b60805160a05160c05160e05161318f620001ea60003960006114b70152600061046e0152600061028501526000818161051a01528181610b8201528181610ecf01528181610f230152611a6c015261318f6000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b3d565b610a64565b61021e610a9c565b61032461030f366004612b76565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612b99565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bc7565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c08565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61021e61049e366004612cd1565b610d50565b61021e6104b1366004612d13565b610ec4565b61021e6104c4366004612d64565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612db7565b610fe1565b61021e6104fd366004612d13565b611019565b61021e610510366004612de3565b61114d565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61025a61054a366004612bc7565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e4f565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e6c565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eb6565b6106c15760405162461bcd60e51b815260040161062490612ed3565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f1b565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eb6565b610b245760405162461bcd60e51b815260040161062490612ed3565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bbf5760405162461bcd60e51b815260040161062490612f85565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612fe3565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612fe3565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f1b565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612fe3565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612fe3565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612fe3565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612fe3565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f0c5760405162461bcd60e51b815260040161062490612f85565b610bca84848484611d4c565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f605760405162461bcd60e51b815260040161062490612f85565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f1b565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612fe3565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612fe3565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612fe3565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612fe3565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612fe3565b90506020020160208101906113619190612ff9565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f000000000000000000000000000000000000000000000000000000000000000046036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e4f565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e6c565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906117839086908690600401613066565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c4919061307f565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130a9565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130d8565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612fe3565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130eb565b815481106122e8576122e8612fe3565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612fe3565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e6130fe565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613114565b036124c05750565b60018160048111156124d4576124d4613114565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613114565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613114565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613114565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eb6565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130d8565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061312a565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b81526004016106249190613146565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff80821115612aa357600080fd5b818901915089601f830112612ab757600080fd5b813581811115612ac957612ac9612a1e565b604051601f8201601f19908116603f01168101908382118183101715612af157612af1612a1e565b816040528281528c6020848701011115612b0a57600080fd5b8260208601602083013760006020848301015280955050505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5057600080fd5b8235612b5b816129d3565b91506020830135612b6b81612b2f565b809150509250929050565b600060208284031215612b8857600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bac57600080fd5b8235612bb7816129d3565b91506020830135612b6b816129d3565b600080600060608486031215612bdc57600080fd5b8335612be7816129d3565b92506020840135612bf7816129d3565b929592945050506040919091013590565b604080825283519082018190526000906020906060840190828701845b82811015612c4a5781516001600160a01b031684529284019290840190600101612c25565b5050508381038285015284518082528583019183019060005b81811015612c7f57835183529284019291840191600101612c63565b5090979650505050505050565b60008083601f840112612c9e57600080fd5b50813567ffffffffffffffff811115612cb657600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612ce457600080fd5b823567ffffffffffffffff811115612cfb57600080fd5b612d0785828601612c8c565b90969095509350505050565b60008060008060808587031215612d2957600080fd5b8435612d34816129d3565b93506020850135612d44816129d3565b92506040850135612d54816129d3565b9396929550929360600135925050565b60008060008060808587031215612d7a57600080fd5b8435612d85816129d3565b93506020850135612d95816129d3565b9250604085013591506060850135612dac816129d3565b939692955090935050565b60008060408385031215612dca57600080fd5b8235612dd5816129d3565b946020939093013593505050565b60008060008060408587031215612df957600080fd5b843567ffffffffffffffff80821115612e1157600080fd5b612e1d88838901612c8c565b90965094506020870135915080821115612e3657600080fd5b50612e4387828801612c8c565b95989497509550505050565b600060208284031215612e6157600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612ec857600080fd5b8151611d4581612b2f565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561300b57600080fd5b8135611d4581612b2f565b60005b83811015613031578181015183820152602001613019565b50506000910152565b60008151808452613052816020860160208601613016565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461303a565b60006020828403121561309157600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130bb57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130c2565b818103818111156121e6576121e66130c2565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161313c818460208701613016565b9190910192915050565b602081526000611d45602083018461303a56fea26469706673582212208f93c215613625117caec9113257c8859da3eb85d10c3f4716517f3a64d0f80c64736f6c63430008180033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc90000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853","r":"0xfb748ceeef81a17a8b56d2d3c818e888787ba3c017eaa29a04a927871603f527","s":"0xfcefcdeed8257cfacd57e6d933299e3bf6afd5ecb75fe276fde2ecac9c6dc9e","yParity":"0x1","hash":"0xd4419af41a68cb6d42cf7795e938fa39e1bea5600b124364fb6c5b304c2f9220"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xe","gasLimit":"0x227001","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60c06040523480156200001157600080fd5b5060405162001f6438038062001f64833981016040819052620000349162000118565b6001600160a01b0381166080526200004b62000056565b504660a0526200014a565b600054610100900460ff1615620000c35760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000116576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012b57600080fd5b81516001600160a01b03811681146200014357600080fd5b9392505050565b60805160a051611ded620001776000396000610ea501526000818161032401526109810152611ded6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b3d565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b83565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000000000000000000000000000000000000000000081565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611bf5565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c12565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c5c565b6104cb5760405162461bcd60e51b815260040161042e90611c7e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c5c565b6107345760405162461bcd60e51b815260040161042e90611c7e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611d988339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c5c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cc6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f00000000000000000000000000000000000000000000000000000000000000004603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611bf5565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c12565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611cf5565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d4c565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d76565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b915060208381013567ffffffffffffffff80821115611a9257600080fd5b9085019060608288031215611aa657600080fd5b611aae6119fc565b823582811115611abd57600080fd5b8301601f81018913611ace57600080fd5b803583811115611ae057611ae06119e6565b611af2601f8201601f19168701611a25565b93508084528986828401011115611b0857600080fd5b808683018786013760008682860101525050818152838301358482015260408301356040820152809450505050509250929050565b60008060008060808587031215611b5357600080fd5b8435611b5e8161188d565b93506020850135611b6e8161188d565b93969395505050506040820135916060013590565b60008060208385031215611b9657600080fd5b823567ffffffffffffffff80821115611bae57600080fd5b818501915085601f830112611bc257600080fd5b813581811115611bd157600080fd5b866020828501011115611be357600080fd5b60209290920196919550909350505050565b600060208284031215611c0757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c6e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b8281526000602060406020840152835180604085015260005b81811015611d2a57858101830151858201606001528201611d0e565b506000606082860101526060601f19601f830116850101925050509392505050565b600060208284031215611d5e57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a264697066735822122016d51116de2d4e6ebc6b9dfa2dada06d1f6e51f6dc472774de5d172aa09dda6d64736f6c63430008180033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x48a16075736feec1d7ae0e7a9b3677b0859e06ec3bcbec1d35febe5d6f7217b8","s":"0x523fccf81775a6a51a01e12b7094af9de70f6cf037224fca6ec3d7ac950b7de5","yParity":"0x1","hash":"0x3da35e0d84e5fe1be7f74d2888bf3c992f85e98792e5ac0b47f43e8cc504f7b0"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x76fa2a4c141ce999c8fca25f6cdd9760ea421baefe3e3b64a8bfd31c0e350abc","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x797b81974e6a805be4b5b2890f652662f60be80dd13a8065b104ab561d3a9ff7","transactionsRoot":"0xfab954a1ab4c7104de5f6c6da80ac987021f5090a32b82ed1ce8dfa01fad0410","receiptsRoot":"0xd1c8b65b3434b821c01373d6f8bfbfbe1ccac2db2c2f4524d828b811263c0f75","logsBloom":"0x00000000000000000000000040000000400004000000000000000000000000000400000000000000000400000000000000400000000100100004000000000000000000000000000000000400000002000000000000000000000000000000440000000000000000000000000004800000000004800000000000000000000000000000000300000002000040000000000400000000000080000000000000800000000000000000000000000000000400000000000000000000000000000000000000040020480000000000000000040000000000000408000000000000000000000000000000000000000000000000000000000000000000000000000000400000","difficulty":"0x0","number":"0x12","gasLimit":"0x1c9c380","gasUsed":"0xae942","timestamp":"0x66f70aa9","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x844a0c5","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1c","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xf0fda4d0f88191c03c2ba23a16c13dcdb2509d5a9fe0f48394ecde5352150070","s":"0x1098314b46b48bdc9bb8e6f56ea0403f0eff591ac83b32233588a0ac6dc5a469","yParity":"0x0","hash":"0x5c2ef0a0614d6d04bf3c8181b9130589f20547110fabe10c738ae977ce457f93"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1d","gasLimit":"0x2fecd","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000","r":"0x838b414b6b74a807b6cec49bee76d144ba82d7c1b949f38a2537b2056dd59d25","s":"0x3f63e62b6ba74edca9c1ee1e784bcec6774b75b86076874419d1a282e7f880fc","yParity":"0x1","hash":"0xcb39bb5111342c9b6c2f3bc3007f67a86aa7cbd10b6ab9031dd81ff5a35d1026"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x3ae86512f47472599bdf17ca766dd68a09554bd2059f48155a92fc414f24ddd2","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xa810593bf34bd03e26a222a548750bcb9784b30f21352bd1a3448f998b505059","transactionsRoot":"0x2d295a1a56790354d3dfc15ffddaa6edfa873b022a1e1baa22b14a5e5edc4edd","receiptsRoot":"0x512e220a8b7b294fa78996ec060c7ee2a7aea1e010adaa6e9d99d6250505f207","logsBloom":"0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800001004000000000000000000000000400000000100000000000000000000000000000000000080004000000000000000002000000000000000000000008400000000000000000000000000000000000000000020400000200000000000040000040000002008000001000000000020000000000000000001000000000000000000000000000000020000000000400000","difficulty":"0x0","number":"0xf","gasLimit":"0x1c9c380","gasUsed":"0x22a1c","timestamp":"0x66f70aa6","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xc1968f9","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x19","gasLimit":"0x2fd5c","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31800000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000","r":"0xce9a83556ed5b8b9b6319c02942d2d3720f02fc38edad3098f7c8a7d20b20d1c","s":"0x4f81258f20f30b95f0f9edcab842a6f3f2873afe18960b9acc11ee602a38a56","yParity":"0x1","hash":"0xb607e1fb885ff8088878a3701005807b6ed2e513a5dc7a46832337ffad520f52"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x0278ea2b38f9769073f11d2038144ac3be14552d0c813cc12085d466e172f5f3","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x7adb2b3e18a8328155d6913d21fb2af8cf361c9aaeb58040f9dbd30ac9c9e1c1","transactionsRoot":"0xebef20f607a11851cc1da0bf06a46b841eb96efa9d6ebda3b5d11bf42ae86a51","receiptsRoot":"0xed9ca791e5f99aad47d9e3a346889b9ef20984c2ce8d39ba38971969042f060e","logsBloom":"0x00000000000001000000000040000000400400000000000000800000020000000000000800000000000000000000000000000000000000100800000000000000000080000000008000002400000102000001000400000010000000008000000000000000020000000000008100010820000000080200000000000000000000400100000100000000000000000000000000000000000080000000000000000000000000000000000000200000400400000000000000000000000000000000000000000020480000280000000000041100000000002000000000000000000020000000000000400000080000800000000000000000000000000000100000408000","difficulty":"0x0","number":"0x7","gasLimit":"0x1c9c380","gasUsed":"0x8bd37","timestamp":"0x6706bcf8","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1ea2500b","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2f","gasLimit":"0xb72dd","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000851356ae760d987e095750cceb3bc6014560891c0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd0000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000264dd8283f3000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af8000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000","r":"0xf3c9b025aac9ff87001798fd3bcb4578b6dd198c8ca784e3a5624f13bf703e09","s":"0x245072ac923d5468c30c3e1123a8c4a5d4cb52152882a18067310a4307aa91e0","yParity":"0x0","hash":"0x478b433de71d6d7d869b34bde76e92a911da6042fd5f5d954b9a64c90466e933"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xdc661eb62f3503115532a4a4ebf9dbb29830a7f54b0435e7188a418d1ac7faf1","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xe9b60063aacd8c449a75c6d42c12340d0ad5ca0cc15869816475241b96f26a62","transactionsRoot":"0x5559e7c030fa3fc2052f5611dfb7b535bb0df3b5baae7b244a504e9be1a00750","receiptsRoot":"0x68145e2e03ccdfe486fa1f145040a9a8121359fce637c5caf7d8e74c0cf675a2","logsBloom":"0x00000000000000000000000040000008400000000000000000800000000000000010000000000000000000000000000000000000000000100000000000000000041000000000000000000400000402000001002000000000000000000000000000020000020000000000000300800800000004000000000000000000000000440000000100000000000000000000000000000000000080000000000000100000000000000000000000000000000400000000000000000000000000000000000000000024400000200000000000040000000000002008002000000000000020000000000000000100400800000400000000000000000000000000000001400200","difficulty":"0x0","number":"0xd","gasLimit":"0x1c9c380","gasUsed":"0x29531","timestamp":"0x66f70aa4","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xfc266be","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x17","gasLimit":"0x3c6fd","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000","r":"0xaf0be982c32239fd3356cec3c0f0c871c6c380af355b3a500e9bce289230bb06","s":"0x6de714223a1b07aa0785a9506d312a00008586c93941c887000a575c0070a892","yParity":"0x1","hash":"0x0522948d2d86e6eefacbffda3bf89dd98f7aadad2949c5b6086eac98993fee0f"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x66835bd370fe530f0849c43835f64e9d70ef796d79b976afce6a9d55047991b3","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x518da3a4ac459261de9dc65bc384b40ce345d9486b6df0d6d9f300dce7e7ce8f","transactionsRoot":"0xc616ef56b3fa5e6ccd062c5332871df5c59b5865914b798ffd906fe66f1bed8c","receiptsRoot":"0xc39c69e92abcb24804e75039383b16e192af5974159046e5d8b0495a108fbda7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xa","gasLimit":"0x1c9c380","gasUsed":"0xd0215","timestamp":"0x66f70aa1","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1641ea6d","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x10","gasLimit":"0x10e7de","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b50604051610efe380380610efe83398101604081905261002f9161004e565b5050610088565b6001600160a01b038116811461004b57600080fd5b50565b6000806040838503121561006157600080fd5b825161006c81610036565b602084015190925061007d81610036565b809150509250929050565b610e67806100976000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd5565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d13565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d60565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d7d565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610dc7565b6105b35760405162461bcd60e51b815260040161051990610de9565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610dc7565b61070d5760405162461bcd60e51b815260040161051990610de9565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d60565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d7d565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff80821115610c8b57600080fd5b818501915085601f830112610c9f57600080fd5b813581811115610cae57600080fd5b8660208260051b8501011115610cc357600080fd5b60209290920196919550909350505050565b600080600060608486031215610cea57600080fd5b8335610cf581610af7565b9250610d0360208501610b0c565b9150604084013590509250925092565b60008060008060808587031215610d2957600080fd5b8435610d3481610af7565b9350610d4260208601610b0c565b9250610d5060408601610b0c565b9396929550929360600135925050565b600060208284031215610d7257600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dd957600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea264697066735822122073763b5180077a8bc6ac9f9f13d1ff53a2202a0e325b92566fd1ff7df689217864736f6c63430008180033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x8748d4fad66ca0d0073e108fb37d6acb5e7c585f0b23b43d69595e6e39de94e","s":"0x8dc88fff6d49d871df32f73b27b9772ded6c12814cfaa5b679d5095429a9f67","yParity":"0x0","hash":"0x3e4e0ce43145a9e80b5f0dad88697d66d94d83368a0f92a5c79bf7274d95f592"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xa9a73f22a7ec019b54a5a4d43296b03a0d61022763f5fdd971698f75d1b29f0a","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x70329eb5e4ff7ae96a4afaad3697848b7a41d125cbc5e9ba9a8d0e9dd0625753","transactionsRoot":"0x4c2f84d2402f07470bcd9b43707c6b07b76fd01ff99279d827447f1d53d730a9","receiptsRoot":"0xe5e7e90defbbf8b259db6472d3c0d68e13d2f873e047555264b1ff45e2f4cfcd","logsBloom":"0x00000000100000000000000000000000000000000040000000800000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000020000000000000000020000000000000100000800000000000000000040000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000200000000000040000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x6","gasLimit":"0x1c9c380","gasUsed":"0x532369","timestamp":"0x66f70a9d","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x20026474","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xa","gasLimit":"0x66535c","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6101206040523480156200001257600080fd5b5060405162005ec238038062005ec283398101604081905262000035916200016f565b6001600160a01b0380861660805284811660a052831660c0526001600160401b0380831660e0528116610100526200006c62000077565b5050505050620001e7565b600054610100900460ff1615620000e45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000137576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200014f57600080fd5b50565b80516001600160401b03811681146200016a57600080fd5b919050565b600080600080600060a086880312156200018857600080fd5b8551620001958162000139565b6020870151909550620001a88162000139565b6040870151909450620001bb8162000139565b9250620001cb6060870162000152565b9150620001db6080870162000152565b90509295509295909350565b60805160a05160c05160e05161010051615be0620002e2600039600081816105b501528181612007015281816120be0152612116015260008181610275015281816125a7015281816125db01528181612c0701528181612c340152818161437a01526143b501526000818161036d01528181610614015281816107a701528181610aef01528181610c3a01528181610dc201528181610f7d0152818161115e0152818161128801528181611459015281816118a601528181611a4401528181611b8301528181611d4501528181611e2f015261312a015260008181610241015261339c0152600081816104520152610e8d0152615be06000f3fe6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039b57600080fd5b506103af6103aa366004614e40565b610ca5565b60405161020f9190614eb9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ec7565b610d0a565b60405161020f9190614ee0565b34801561041557600080fd5b506103af610424366004614ec7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f28565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614f9b565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e40565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615045565b61144e565b34801561052f57600080fd5b5061022d61053e366004615071565b61168b565b34801561054f57600080fd5b5061022d61055e36600461518f565b611863565b34801561056f57600080fd5b5061022d61057e366004615260565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615045565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610687919061535b565b156106ad5760405162461bcd60e51b81526004016106a49061537d565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615422565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a919061535b565b156108375760405162461bcd60e51b81526004016106a49061537d565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b629190615471565b8935610b7160208c018c61548a565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a6154d0565b9050602002016020810190610baf91906154e6565b8a8a86818110610bc157610bc16154d0565b9050602002810190610bd3919061548a565b8a8a88818110610be557610be56154d0565b9050602002810190610bf7919061550d565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e81565b6002811115610dae57610dae614e81565b90525092915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610dff5760405162461bcd60e51b81526004016106a490615556565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615620565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f5592919061566f565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff0919061535b565b1561100d5760405162461bcd60e51b81526004016106a49061537d565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d19190615471565b8735610b7160208a018a61548a565b6000805b8881101561127a576112668b8b8b84818110611202576112026154d0565b905060200201602081019061121791906154e6565b8a358a8a8681811061122b5761122b6154d0565b905060200281019061123d919061548a565b8a8a8881811061124f5761124f6154d0565b9050602002810190611261919061550d565b6128c1565b6112709083615683565b91506001016111e4565b506033546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163c2c51c4091166112bf633b9aca00856156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e81565b60028111156113d9576113d9614e81565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615422565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114965760405162461bcd60e51b81526004016106a490615556565b6114a4633b9aca00826156f1565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca0083615705565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615719565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611919919061535b565b156119365760405162461bcd60e51b81526004016106a49061537d565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e36154d0565b60200260200101518784815181106119fd576119fd6154d0565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab7919061535b565b15611ad45760405162461bcd60e51b81526004016106a49061537d565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf69190615471565b8b35610b7160208e018e61548a565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d6154d0565b9050602002810190611c4f9190615739565b8c8c86818110611c6157611c616154d0565b9050602002810190611c73919061548a565b8c8c88818110611c8557611c856154d0565b9050602002810190611c97919061550d565b8c8c8a818110611ca957611ca96154d0565b9050602002810190611cbb919061550d565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee908390615683565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca009061575a565b613372565b602081015115611dde5760335460208201516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263c2c51c4092911690611d7f90633b9aca00906156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea2919061535b565b15611ebf5760405162461bcd60e51b81526004016106a49061537d565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f829190615771565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c6020615784565b6120e37f000000000000000000000000000000000000000000000000000000000000000084615719565b610d0491906157a7565b60006120fb600c6020615784565b6121068360016157cd565b6121109190615784565b610d04907f00000000000000000000000000000000000000000000000000000000000000006157cd565b6121466003602061575a565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e81565b600281111561238757612387614e81565b90525090506000816060015160028111156123a4576123a4614e81565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e906157ed565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f83615811565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000000000000081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000000000000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e81565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b0316612773919061575a565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b60405160029061282290849060009060200161582a565b60408051601f198184030181529082905261283c91615859565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d049190615471565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e81565b60028111156129c0576129c0614e81565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e81565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000000000000081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000000000000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e81565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b896158da565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b6158da565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e81565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a16565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f6158da565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e81565b600281111561333857613338614e81565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d6154d0565b60200260200101519050919050565b60008160018151811061342d5761342d6154d0565b6000610d0482600281518110613469576134696154d0565b60200260200101516147cd565b61348260036002615b17565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b61353090602061575a565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d0482600781518110613469576134696154d0565b60006136fd6001600160401b03808416908516615b23565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b8051909150156116865780806020019051810190613890919061535b565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b17565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b17565b61399a60c0840160a08501615b43565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615b8b83398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b17565b613a21610100840160e08501615b43565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b17565b613aa960e0840160c08501615b43565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b856158da565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b7690602061575a565b613b80848061548a565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b90602061575a565b613c18604085018561548a565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615b8b83398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e6003602061575a565b613cab602085018561548a565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d2481602061575a565b613d31606085018561548a565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd90602061575a565b613dea608085018561548a565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615b43565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615b43565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef3608086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb8602086018661548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b7614071604087018761548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a606086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615b43565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a9614268878061548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d0482600181518110613469576134696154d0565b6000610d0482600381518110613469576134696154d0565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000000000000006143dc565b50825b60408051808201909152600080825260208201526143fa8286615719565b6001600160401b03908116825260348054849260009161441c918591166157cd565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e81565b1461448d576039805490600061448083615b60565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e81565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b03166157cd565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b91906156f1565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c3576147506002856156f1565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b600080600283516148459190615705565b90506000816001600160401b038111156148615761486161508e565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a5838361575a565b815181106148b5576148b56154d0565b6020026020010151868360026148cb919061575a565b6148d6906001614c64565b815181106148e6576148e66154d0565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f198184030181529082905261492291615859565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906149629190615471565b828281518110614974576149746154d0565b6020908102919091010152600101614890565b50614993600283615705565b91505b8115614aa95760005b82811015614a96576002826149b4838361575a565b815181106149c4576149c46154d0565b6020026020010151838360026149da919061575a565b6149e5906001614c64565b815181106149f5576149f56154d0565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a3191615859565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a719190615471565b828281518110614a8357614a836154d0565b602090810291909101015260010161499f565b50614aa2600283615705565b9150614996565b80600081518110614abc57614abc6154d0565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb89190615859565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615b77565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b0380821115614d7257600080fd5b614d7e8c838d01614ccc565b985060408b0135915080821115614d9457600080fd5b614da08c838d01614ce4565b909850965060608b0135915080821115614db957600080fd5b614dc58c838d01614ce4565b909650945060808b0135915080821115614dde57600080fd5b50614deb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e1157600080fd5b5081356001600160401b03811115614e2857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e5357600080fd5b82356001600160401b03811115614e6957600080fd5b614e7585828601614dff565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614eb557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614e97565b600060208284031215614ed957600080fd5b5035919050565b60006080820190506001600160401b03808451168352806020850151166020840152806040850151166040840152506060830151614f216060840182614e97565b5092915050565b600080600080600060608688031215614f4057600080fd5b85356001600160401b0380821115614f5757600080fd5b614f6389838a01614dff565b90975095506020880135915080821115614f7c57600080fd5b50614f8988828901614dff565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fb757600080fd5b8835614fc281614c77565b975060208901356001600160401b0380821115614fde57600080fd5b614fea8c838d01614ce4565b909950975060408b013591508082111561500357600080fd5b61500f8c838d01614ccc565b965060608b0135915080821115614db957600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615025565b6000806040838503121561505857600080fd5b823561506381615025565b946020939093013593505050565b60006020828403121561508357600080fd5b81356136fd81615025565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150c7576150c761508e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156150f5576150f561508e565b604052919050565b60006001600160401b038211156151165761511661508e565b5060051b60200190565b600082601f83011261513157600080fd5b81356020615146615141836150fd565b6150cd565b8083825260208201915060208460051b87010193508684111561516857600080fd5b602086015b84811015615184578035835291830191830161516d565b509695505050505050565b6000806000606084860312156151a457600080fd5b83356001600160401b03808211156151bb57600080fd5b818601915086601f8301126151cf57600080fd5b813560206151df615141836150fd565b82815260059290921b8401810191818101908a8411156151fe57600080fd5b948201945b8386101561522557853561521681615025565b82529482019490820190615203565b9750508701359250508082111561523b57600080fd5b5061524886828701615120565b9250506152576040850161503a565b90509250925092565b60008060008060008060008060008060c08b8d03121561527f57600080fd5b6152888b614c8c565b995060208b01356001600160401b03808211156152a457600080fd5b6152b08e838f01614ccc565b9a5060408d01359150808211156152c657600080fd5b6152d28e838f01614ce4565b909a50985060608d01359150808211156152eb57600080fd5b6152f78e838f01614ce4565b909850965060808d013591508082111561531057600080fd5b61531c8e838f01614ce4565b909650945060a08d013591508082111561533557600080fd5b506153428d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b60006020828403121561536d57600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b60006020828403121561548357600080fd5b5051919050565b6000808335601e198436030181126154a157600080fd5b8301803591506001600160401b038211156154bb57600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156154f857600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261552457600080fd5b8301803591506001600160401b0382111561553e57600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b838110156155eb5781810151838201526020016155d3565b50506000910152565b6000815180845261560c8160208601602086016155d0565b601f01601f19169290920160200192915050565b60808152600061563460808301888a6155a7565b828103602084015261564681886155f4565b9050828103604084015261565b8186886155a7565b915050826060830152979650505050505050565b602081526000614adc6020830184866155a7565b80820182811260008312801582168215821617156156a3576156a3614c4e565b505092915050565b80820260008212600160ff1b841416156156c7576156c7614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b600082615700576157006156db565b500690565b600082615714576157146156db565b500490565b6001600160401b03828116828216039080821115614f2157614f21614c4e565b6000823561017e1983360301811261575057600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160280821691908281146156a3576156a3614c4e565b60006001600160401b03808416806157c1576157c16156db565b92169190910492915050565b6001600160401b03818116838216019080821115614f2157614f21614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161582357615823614c4e565b5060010190565b6000835161583c8184602088016155d0565b6001600160801b0319939093169190920190815260100192915050565b600082516157508184602087016155d0565b600082601f83011261587c57600080fd5b81356001600160401b038111156158955761589561508e565b6158a8601f8201601f19166020016150cd565b8181528460208386010111156158bd57600080fd5b816020850160208301376000918101602001919091529392505050565b600061018082360312156158ed57600080fd5b6158f56150a4565b82356001600160401b038082111561590c57600080fd5b6159183683870161586b565b8352602085013591508082111561592e57600080fd5b61593a3683870161586b565b6020840152604085013591508082111561595357600080fd5b61595f3683870161586b565b6040840152606085013591508082111561597857600080fd5b6159843683870161586b565b6060840152608085013591508082111561599d57600080fd5b506159aa3682860161586b565b6080830152506159bc60a08401614c8c565b60a08201526159cd60c08401614c8c565b60c08201526159de60e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a2857600080fd5b81516136fd81614c77565b600181815b80851115615a6e578160001904821115615a5457615a54614c4e565b80851615615a6157918102915b93841c9390800290615a38565b509250929050565b600082615a8557506001610d04565b81615a9257506000610d04565b8160018114615aa85760028114615ab257615ace565b6001915050610d04565b60ff841115615ac357615ac3614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615af1575081810a610d04565b615afb8383615a33565b8060001904821115615b0f57615b0f614c4e565b029392505050565b60006136fd8383615a76565b8181036000831280158383131683831282161715614f2157614f21614c4e565b600060208284031215615b5557600080fd5b81356136fd81614c77565b600081615b6f57615b6f614c4e565b506000190190565b6020815260006136fd60208301846155f456fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212203a1d7654540a3a59378fcb8f0dc45727b0865d15b2835f5c00ae74b9a4b3506964736f6c6343000818003300000000000000000000000042424242424242424242424242424242424242420000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3180000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000000000000000000000000000000000000773594000000000000000000000000000000000000000000000000000000000006059f460","r":"0x7ecbcc6f27db4f45aa67a6af7485ab6b6e83f09d606bfecc30b877551fae7858","s":"0x10649f0d149d7e197719260aea70a89f494fef4536fb68aa8b96ca19d82aeeed","yParity":"0x1","hash":"0xeec7885bd4acd3c5899e60e2f446f2c7677866554225055981920e21ab03ad31"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xb","gasLimit":"0x5b8ea","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b506040516104be3803806104be83398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610345806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea2646970667358221220042ec08fde05948b20d3f0fe8bf03cfe1d6ad33ecfc3fd565cbce702b2daa70b64736f6c63430008180033000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad788","r":"0xa8f304f599351a29274f956526e5378a6f37fd7cbd2027372f60cfcb2bdaec60","s":"0x72dbe54f8bbfd9bdc9544bc9ce8c9fda7331deb33b616cbf586e38a996522b58","yParity":"0x1","hash":"0x4270863cefc53e29f2a5156b1aa25114a8a4912c3fcd6ad984ed699a20b6fdc1"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x8538a23d64a81d55ad80331969daab75b21ea3c98cd48b108e431c078e92200d","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xd02fb09a38a29d67c370e2165c801fdacfeb4e931b99e92070e6c0de4ed505c7","transactionsRoot":"0x7cde2e81fc4ed6fbcb24eef4384e11af5da6bfc5daf8e4f18205fe765aac455e","receiptsRoot":"0x8e17a918befd16ea41af7abbeb3a0d7e91c46e42ca82e997f86768ab99faff60","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000800010000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000040004000000200000000000000000000000000000000000400000000000000000000000000000000000000000080000040000000000000000000000000000000000000000400000000000000000000000000000000000000000020000000000000000000040000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x5","gasLimit":"0x1c9c380","gasUsed":"0x113588","timestamp":"0x6706bcf6","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x242634c7","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x28","gasLimit":"0x159870","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a060405234801561001057600080fd5b506040516113a63803806113a683398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b60805161123a61016c60003960008181610142015281816102750152818161040f01526107d6015261123a6000f3fe608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f28565b60405180910390f35b6100f46100ef366004610f9c565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fcf565b610404565b005b6100f4610138366004610fea565b610528565b6101647f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fcf565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9c565b6105f5565b6040516100d8919061102d565b61018f6101e1366004610f9c565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611065565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fcf565b6108d5565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102bb5760405162461bcd60e51b81526004016102b29061108f565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611102565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611118565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112e565b6000610368836108f4565b905061037f898461037a600185611199565b6109f1565b8085858151811061039257610392611118565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461044c5760405162461bcd60e51b81526004016102b29061108f565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611118565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611102565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611118565b6020026020010181815250506000801b8282815181106106a2576106a2611118565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611118565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108135760405162461bcd60e51b81526004016102b29061108f565b60005b818110156108cf57600083838381811061083257610832611118565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112e565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111bd565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b600184611199565b63ffffffff168152602081019190915260400160009081205490036103b75760ff8416600090815260026020526040812090610988600184611199565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111da565b81548110610abc57610abc611118565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111da565b81548110610b0357610b03611118565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111da565b81548110610b5d57610b5d611118565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111ed565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111da565b81548110610cb457610cb4611118565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111ed565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff16611199565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff80821115610ee057600080fd5b818601915086601f830112610ef457600080fd5b813581811115610f0357600080fd5b876020828501011115610f1557600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835163ffffffff1683529284019291840191600101610f44565b50909695505050505050565b803560ff81168114610f8357600080fd5b919050565b803563ffffffff81168114610f8357600080fd5b60008060408385031215610faf57600080fd5b610fb883610f72565b9150610fc660208401610f88565b90509250929050565b600060208284031215610fe157600080fd5b6103b782610f72565b600080600060608486031215610fff57600080fd5b61100884610f72565b925061101660208501610f88565b915061102460408501610f88565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835183529284019291840191600101611049565b6000806040838503121561107857600080fd5b61108183610f72565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff8281168282160390808211156111b6576111b6611183565b5092915050565b63ffffffff8181168382160190808211156111b6576111b6611183565b818103818111156103fe576103fe611183565b6000816111fc576111fc611183565b50600019019056fea2646970667358221220af8de4d3486e0b797de225bb92c1953126cca4d69399c73bf6885ce4485dc52464736f6c63430008180033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c","r":"0xf9964b07ab1de5eb070ced8506f893e67eb8923c8d1a04718bdcb7169fafeb06","s":"0x301366bb528e2305979240fdda00191dacf104cf61cf462c9dea80fb20690a36","yParity":"0x1","hash":"0x9e3bafd0639aa5c6dfb1f077014b1e2bbf8904dd40ac5ceae5e3fcff142f99ee"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x29","gasLimit":"0xd175","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x99a88ec4000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3600000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49","r":"0xb69c6de2bc8add371c9f06e045593bf630b13a0e4e29e4434a9573761b6aac5","s":"0x185a8957fc2cd0932570b74a3867257f65a0b196c2bbe5056e10a7db3e96bd6a","yParity":"0x0","hash":"0xc55bc6448216d5fabf802cafda5597277ac40a0a4254523971756c67ff9fb2ee"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x78ae1dc60d5a6304aa339e8aaf1ce85caa9087f90e81ead058aca2a258c890bd","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x416f2b74e0bb18b197717f381a20c273f9d45b8065d1ded6e34cd406fe5b2ad3","transactionsRoot":"0x89461de33ef270ec88c2e0f90b21bf4b0b85299a876fa321c26bc49f56db955f","receiptsRoot":"0xed88345f4b092cb3e0f2915d4af9618426de277e523d6a4136e9b623753c7c8c","logsBloom":"0x00000000000000000000000040000000400000000000000000c00000000000010000000000000000000000000000080000000000000000100000400000000005000000400080000000000400000002000001000250000010010000000000000000000000020000000000000100800808000004000000000000040000000000400000000108000000000000000000000000000800000080000000000000000000000000000000040000000002000400000000000000000008000000000000000000102020400000200000000000040000000000002228000000000001000020000000000000000000000000000000000000000001080000000100002000400000","difficulty":"0x0","number":"0xc","gasLimit":"0x1c9c380","gasUsed":"0x7d85c","timestamp":"0x66f70aa3","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x11ec470d","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x13","gasLimit":"0x3809f","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000010422bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x7453d76833b76652cd6cebc3572864c150a481bb9dc43a606b7e1dcf37118a0a","s":"0x370dcd15c27597d1ef337738c145c04712badb9f3ea0656a20036fd1860a71d","yParity":"0x1","hash":"0xd89622c01e915286913ae41dde34ea10422f2db5e37d325b526b69190e2d349a"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x14","gasLimit":"0x378d0","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd8200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x630a4929acbb47dddc49e0fa0158a45461f73eadcdf0424a290a9ba7c191c1f7","s":"0x61426e423e3667c940feaab545023461bb71e955ef6f988abdc9af2ddf39b04c","yParity":"0x0","hash":"0x6915eb414cbf032995fc0585e67953f7007bd585042661bfff519ed442f40c91"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x15","gasLimit":"0xe6ca","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x95baaaef0bd1fbeb909001f179587ef094ef2423f8b8c6cf093c8ef03b4f2eeb","s":"0x68ef2d33ed58427025667dca05b18437f2f4689f44d2b56d19a8c4cefa75c635","yParity":"0x1","hash":"0x245ce1c4eeb5ceb2ec58663b3425259120d529d7ec97ac88dda2e4d833f539df"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x16","gasLimit":"0x2f5cf","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0xf5efefffce22d0a6334d561618af5a968e3c4da442c9fda875dac6a37d939717","s":"0x17076e1acb4cc153656f1f50f38c034ea8d768e3ffbd1824414e6ac60584001d","yParity":"0x0","hash":"0x7224f9f8c9558feec8910b776ac56c70c752a1d2412ffb4c9d360f721249b1d5"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xa353358546466a6edfc12ffc2251be42f4542e90bfe09816486471a8d00e850c","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x3c734f7d98c26be2de125713c3207615a8c3f713290815736d02c43c05759330","transactionsRoot":"0x689c71b22b221b4c96f3c2d18b3396c951f1455797b43bae33c9d97e6e87e50b","receiptsRoot":"0x3ac0534ebfa5979b07bfd28bf52bdde4439940190294ff5e0df6feaa81d11990","logsBloom":"0x000000000400000000000000400000004000000000000000008000000000000000000000000000000000000000000000000000000080001000000000000000000000000000000000000004000000020000010000000000000002000000000000000000000200000400000001008008000000040000000000000000000000004000000001000000000000000000000000008000000000c0000000000000000000000000000000000000000000000440000000000000000000000000000000008000000020400000200000000000040000010000002008000000000000000020000000000000000000000000000000000000000000000000000000000000400000","difficulty":"0x0","number":"0xe","gasLimit":"0x1c9c380","gasUsed":"0x1dc39","timestamp":"0x66f70aa5","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xdcfcab8","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x18","gasLimit":"0x2b879","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x12e63c8802432638e55121476f3412882d53de7f4564ba7b554a55ded0426995","s":"0x991f125ee1e2da668ff168b5b169d99cb2c03e0725be5c5b9980ee3e1a2f299","yParity":"0x1","hash":"0x46592688e43f9f32c373934da7a3fda6407d13c9a010b772b5d79bfc1b7a9b17"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x2f1135f0c94511e50fccb0d74f654cdefcbe7279ce4484af1b28db7826c62bbf","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x53d634f8e9826a2d10ea814c169d3ccc6c84159ee9df93a423163265154733ea","transactionsRoot":"0x0bc54817d649219fb6f9ba45a6dea9f845c303b1a7ac435aeeeb70acdb865fc5","receiptsRoot":"0x6b4e27e5af879c9614bfd8d956783a1e3c5b51a20373a624b1c46c0c623ad973","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000400000000080000400000000000000000000000000001001000000000000000000000000002000000000250000000010000000000400000000000000000000000000000000000000000800000000000000000000000040000000008000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000420000000000001000000000000000000000000000000000000000000000001000000000100000000000000","difficulty":"0x0","number":"0x3","gasLimit":"0x1c9c380","gasUsed":"0x2cebb0","timestamp":"0x66f70a9a","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x2df978a5","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2","gasLimit":"0x191db","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052348015600f57600080fd5b50607780601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220d9b5867338741992fb34ad4d7cbd0a6be2f72f88e519e77dfae6583d2333734564736f6c63430008180033","r":"0xcc5d90bdaf9a7732f15fafad180f48b9b2c221bdadeed2944122e843f6d7b71a","s":"0x1e333403161d867bd74dd69b6803400c0a7e51bff4c3b7fc913b790da950ec9d","yParity":"0x0","hash":"0x7c88615875ed593e5512621866226fb087d83925659156131063568e3b1e5782"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x3","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xf64a79f4294e8b61a9a0a4bc3b4680de5411b7bf47f750b3fd83d6492e456a35","s":"0x92360881a9cf75d30c0d67a39e83985139762ea9d5ec708a64ae1ab4f289ac0","yParity":"0x1","hash":"0x5c7a4ba4a102cd96d6960e6552a8521370dc6e81b59af7385b7c4e27edd119c5"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x4","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x2c9d86019f3a1932b5730b589835752eebe3b9060bd181e2c464390452ad6078","s":"0x4aa2fe7a61f43425ace9284a0277ad5e47d79af795454e2d6cdcad184abc3943","yParity":"0x0","hash":"0x761d8cd21ff98b87e7d01571b73e98b14a6c22bfcf8516703399d7dec0e9ad51"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x5","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x77ce9904fe7d98dec65d6eb11ce8ad38e8fa329b87b809ddccf0206c8046a9b4","s":"0x3ab6abd1026a30a6b3b8dbecaf9ff1c7a5fbab112c0ca405cbd4773a9fe12a38","yParity":"0x0","hash":"0xf1a5f1bb3c7c6e852bf93d19d49759d4f1fc89d9550b807365b50b1d92eca9a8"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x6","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x665a2c6aab648e9735d3707f9a73fdb76a3e303c77bc3588ef18efead4f398e2","s":"0x6d4ec9ab790894fc9be81ab226e68930cc85ff7165ca0eedb725f409cad91f9c","yParity":"0x1","hash":"0xee9e2b75dd907e5bc685f65bbb929ae6b4f01a2cf9c934a8c951ee1597892033"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x7","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x7e836173050b56255124b55ebfba33a2de4317d88c930a7cacc0d5bfcc705ddf","s":"0x55ab3710a2c30eb634f41ea7432ecb64b58f73f82406a0a8729e87032ee6fda","yParity":"0x1","hash":"0x161f78fddd9b65099690d01a50167cc1be40231289bc22f8839d75e68c113d89"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x0","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x6706bcf1","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0xe6952932a1adcda6cb66f61d9b48d75afe84ec0d62b15a63b279a10dfcfdd979","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x80b02b73dcd81ad9eaa5ba7ef3ba63ebd35051d0bdcef2f17dda7d0a03a84c49","transactionsRoot":"0x5919b85a2b265494103804120de6489a218dc031bcb871a67409a974e19abee5","receiptsRoot":"0x83edb4e5d16a5943b62d29cede956c63350dd0044b18fb1b45b6e4f88f32c058","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x2","gasLimit":"0x1c9c380","gasUsed":"0x46bc3","timestamp":"0x6706bcf3","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x345fa48b","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x22","gasLimit":"0x5beec","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b50610447806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c4565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e1565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610336565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead81600081518110610204576102046103fb565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156102b85783516001600160a01b031683529284019291840191600101610293565b50909695505050505050565b6000602082840312156102d657600080fd5b813561013381610226565b6000825160005b8181101561030257602081860181015185830152016102e8565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033181610226565b919050565b6000602080838503121561034957600080fd5b825167ffffffffffffffff8082111561036157600080fd5b818501915085601f83011261037557600080fd5b81518181111561038757610387610310565b8060051b604051601f19603f830116810181811085821117156103ac576103ac610310565b6040529182528482019250838101850191888311156103ca57600080fd5b938501935b828510156103ef576103e085610326565b845293850193928501926103cf565b98975050505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220d2a1dc3d5b3de166be22fce7e789ceac2302c613380087624652f3f48de1ed0864736f6c63430008180033","r":"0x18bdaa0b8b3fa95a033b4436e7d95845dd1e142c9c1b8594b3feae145463055","s":"0x4d3d1c551fcac051d234c1fdf97b78d74db65dd5f6c841b0fe3696210d9fac37","yParity":"0x1","hash":"0x9ccdd78d836a11c54b9c9110f13c517cd1eb6b9dad3ed4ef0470ff024f8266c5"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x466245242c77425a83b88118b3c0991ed6aa22608925e5ec4117dd6439dbe96a","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x5684d3a87d10413eab5aa7bdbc2a3a09a3bb34df98417fa2fd07ae20e9159bed","transactionsRoot":"0xd8fdc6364a20a13ff7635eb1b1c572f2e4ca366d48e0d6b3ba58103f47a445e5","receiptsRoot":"0x8e44e65124058a25b7abab60b704d02afca126c11fcaaacb66dec8593dd7f1c2","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x1","gasLimit":"0x1c9c380","gasUsed":"0x6be89","timestamp":"0x66f70a98","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x0","gasLimit":"0x8c3ea","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6106948061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","r":"0x291319a991f8e2cefed902a8499975f8caf5e9b9d83e2babd366107bbb4c614e","s":"0x641cc004a0dc23eebf967d2b71fd3c6229514075142b722e7ed24ceb38eaebbe","yParity":"0x0","hash":"0x5d7261cd89ce0dce6deaa0108c6defbdae0b2749f8b2ab422590c912bbd7a823"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xff710e29f3494cca8c19d8d84ab91ae20bb917a0a904dbe97a3dcecf51519afd","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xc765a052f9ba5ca9e9c5759f29f16e8b137ba42a25052fdb730c06284887d39e","transactionsRoot":"0xa11f7d16118fe9a01bc9eeadc29f54ca6c7ecd06c9514d8d2469c0ee2383a80f","receiptsRoot":"0x942c5109d475ef403884c6c2f8b29b83c9f3ee54d7bccde8aa46fac213a3af3b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000010000000000000000000000000000008000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000100001000","difficulty":"0x0","number":"0xe","gasLimit":"0x1c9c380","gasUsed":"0xcf71","timestamp":"0x6706bcff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xd1ef515","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x39","gasLimit":"0xd0cd","maxFeePerGas":"0x1dec73db","maxPriorityFeePerGas":"0x1","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","value":"0xde0b6b3a7640000","accessList":[],"input":"0x4223d5510000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0","r":"0x612cb5e49e4366d978642b03ce3fb7509661852d8d3c4a44f3f1f82f97eabae1","s":"0x4d4feac849d1cac99dfa2584f7e01f49b55f87b546a52356b1974480d4ed600d","yParity":"0x0","hash":"0xf620e3aedc51b416c90ae3cc98a7e3949be448d12132cc071e39f0c21bb4f321"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x92e4276fed764d7f7cea517f882fe90c1b2ad75203e00e4eabd785b647633fb3","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xd3bb4d2585bea32ad0dcf103938afcc5888905fc60904851fcec9c9483a9bc67","transactionsRoot":"0x96d88f55534d03af9fc9ebdb60e25a7ed09b02550919394dbc956ba713fa2bef","receiptsRoot":"0xf1fbe0e9be522e6a02e22330de7f182c63f415903e4d304cde617a52d11d5a52","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xb","gasLimit":"0x1c9c380","gasUsed":"0x46d01","timestamp":"0x6706bcfc","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1334a22e","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x36","gasLimit":"0x5c087","maxFeePerGas":"0x2be3422b","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b5060405161046a38038061046a83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6103d7806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea2646970667358221220355151a18763854f71011cb9636c419bc4393ef5d1924777a929c1e19aaa390964736f6c634300080c00330000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","r":"0xc93782fdc4b11ac77e03b9d16e90d18228396736d575b77c9337ed59aba0ab98","s":"0x6718a94977b52b7cfdbf2393ec4439cce67adf4c6e57f2fc172bc0f9c615c4b4","yParity":"0x0","hash":"0xf2082cb7ba60a7b1d36ef9dda8b257999f072c30f99c9b6c8247b92269a881be"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x6b5493e3fa33417354a30a292add0b8d8234624e6e61c4e289b197dc841ccc66","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x3e44f83421e989b05e602c4bc37223f85228f65498bbc8e95bc86566433bfc5e","transactionsRoot":"0xda4b97ccde95448dce077180642c29d61e762aea1dcc332c06896a5df8c6ec5a","receiptsRoot":"0x182a2e9742b3ef9ef4ac4b474099ae47a76c21a6f5d697c603b80bdd3cd74782","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000008000000000","difficulty":"0x0","number":"0x1","gasLimit":"0x1c9c380","gasUsed":"0x6be89","timestamp":"0x6706bcf2","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x21","gasLimit":"0x8c3ea","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6106948061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","r":"0x93e9feb25a043dd56be95c4aaa862f8c39f632c1b88ec096725903cfd6687799","s":"0x4ce0ff0989724862832bffc885ae8b412a2921ea11b848c48d04d4698e078c2e","yParity":"0x0","hash":"0xa3ad69458743fe5b53a01650375595a9d2b5aa966e76a95084434d006819eaa7"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xd4b95e4ec6f57d6d419c266057e9a588e0aa952c244f102815e22672412725f4","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x57c910587bbe81b0019139a52e1cf17d78bfdfedf3b556d0bb19ab8b81acbcec","transactionsRoot":"0x8cb5f7b260b945d22b4b2f0adfa7540ba2f202a500d719990781c7597fb97ec4","receiptsRoot":"0x8f0b8dfec97046256f17f750ce6d6d10751379505e22a70534d708514a7c2f6d","logsBloom":"0x00000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000","difficulty":"0x0","number":"0x9","gasLimit":"0x1c9c380","gasUsed":"0x320750","timestamp":"0x66f70aa0","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x18aab93e","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xf","gasLimit":"0x410465","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6101806040523480156200001257600080fd5b5060405162003dec38038062003dec8339810160408190526200003591620002e4565b868686868686866200004885826200037e565b63ffffffff1615620000ed5760405162461bcd60e51b815260206004820152606060248201527f52657761726473436f6f7264696e61746f723a2047454e455349535f5245574160448201527f5244535f54494d455354414d50206d7573742062652061206d756c7469706c6560648201527f206f662043414c43554c4154494f4e5f494e54455256414c5f5345434f4e4453608482015260a4015b60405180910390fd5b620000fc62015180866200037e565b63ffffffff16156200019d5760405162461bcd60e51b815260206004820152605760248201527f52657761726473436f6f7264696e61746f723a2043414c43554c4154494f4e5f60448201527f494e54455256414c5f5345434f4e4453206d7573742062652061206d756c746960648201527f706c65206f6620534e415053484f545f434144454e4345000000000000000000608482015260a401620000e4565b6001600160a01b0396871661012052949095166101405263ffffffff92831660805290821660a052811660c05291821660e0521661010052620001df620001f2565b5050466101605250620003b09350505050565b600054610100900460ff16156200025c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401620000e4565b60005460ff9081161015620002af576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114620002c757600080fd5b50565b805163ffffffff81168114620002df57600080fd5b919050565b600080600080600080600060e0888a0312156200030057600080fd5b87516200030d81620002b1565b60208901519097506200032081620002b1565b95506200033060408901620002ca565b94506200034060608901620002ca565b93506200035060808901620002ca565b92506200036060a08901620002ca565b91506200037060c08901620002ca565b905092959891949750929550565b600063ffffffff80841680620003a457634e487b7160e01b600052601260045260246000fd5b92169190910692915050565b60805160a05160c05160e051610100516101205161014051610160516139a562000447600039600061181f0152600081816104400152612295015260006106ec01526000818161035701526120c40152600081816102cb0152612170015260008181610419015261207301526000818161065e0152611dea01526000818161060401528181611ea10152611f7c01526139a56000f3fe608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613257565b610caa565b61033d61049a3660046132b7565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e3565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b16105143660046132fe565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613321565b611469565b6102b1610552366004613356565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6102b161068e366004613356565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc36600461339f565b61156b565b61033d6106cf366004613412565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342d565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344a565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613494565b61093b5760405162461bcd60e51b815260040161089e906134b1565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134f9565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110610b8957610b89613567565b9050602002810190610b9b919061357d565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c3565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a908390613709565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371c565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134f9565b600260975403610cf45760405162461bcd60e51b815260040161089e90613530565b6002609755600060ca610d0a60208601866132e3565b63ffffffff1681548110610d2057610d20613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a088018861372f565b90508110156110445736610e4f60e0890189613780565b83818110610e5f57610e5f613567565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137ca565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134f9565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137dd565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613494565b6113ea5760405162461bcd60e51b815260040161089e906134b1565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e3565b63ffffffff168154811061149457611494613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e5600184613801565b63ffffffff16815481106116fb576116fb613567565b906000526020600020906002020160000154036117245761171d600182613801565b9392505050565b8061172e8161381e565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000000000460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342d565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344a565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134f9565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110611a3257611a32613567565b9050602002810190611a44919061357d565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c3565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac3908390613709565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371c565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613780565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611e1a60a08301608084016132e3565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611ed060a08301608084016132e3565b611eda9190613854565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611fab60808301606084016132e3565b611fb59190613854565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e3565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff16426120a391906137ca565b111580156120ec57506120bc60808201606083016132e3565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642613709565b6121a660808301606084016132e3565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613780565b905081101561245357600061224d8480613780565b8381811061225d5761225d613567565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613494565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c083018361372f565b905061255e60a084018461372f565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613780565b905061260460c084018461372f565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e3565b6126af6040860186613877565b86606001612b77565b60005b6126c860a084018461372f565b90508110156124535761276260808401356126e660a086018661372f565b848181106126f6576126f6613567565b905060200201602081019061270b91906132e3565b61271860c087018761372f565b8581811061272857612728613567565b905060200281019061273a9190613877565b61274760e0890189613780565b8781811061275757612757613567565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613494565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138be565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138be565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f6565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613908565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613908565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b613092602082613709565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e919061391c565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff808211156131fa57600080fd5b818501915085601f83011261320e57600080fd5b81358181111561321d57600080fd5b8660208260051b850101111561323257600080fd5b60209290920196919550909350505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326a57600080fd5b823567ffffffffffffffff81111561328157600080fd5b61328d85828601613244565b9250506020830135613149816130db565b803563ffffffff811681146132b257600080fd5b919050565b600080604083850312156132ca57600080fd5b823591506132da6020840161329e565b90509250929050565b6000602082840312156132f557600080fd5b61171d8261329e565b60006020828403121561331057600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333357600080fd5b813567ffffffffffffffff81111561334a57600080fd5b612e4b84828501613244565b6000806040838503121561336957600080fd5b8235613374816130db565b946020939093013593505050565b80356132b2816130db565b803561ffff811681146132b257600080fd5b60008060008060008060c087890312156133b857600080fd5b86356133c3816130db565b955060208701356133d3816130db565b94506040870135935060608701356133ea816130db565b92506133f86080880161329e565b915061340660a0880161338d565b90509295509295509295565b60006020828403121561342457600080fd5b61171d8261338d565b60006020828403121561343f57600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a657600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359357600080fd5b9190910192915050565b818352600060208085019450826000805b868110156136025782356135c1816130db565b6001600160a01b03168852828401356bffffffffffffffffffffffff81168082146135ea578384fd5b898601525060409788019792909201916001016135ae565b50959695505050505050565b60008135601e1983360301811261362457600080fd5b820160208101903567ffffffffffffffff81111561364157600080fd5b8060061b360382131561365357600080fd5b60a0855261366560a08601828461359d565b91505061367460208401613382565b6001600160a01b03166020850152604083810135908501526136986060840161329e565b63ffffffff1660608501526136af6080840161329e565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136ea606083018461360e565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f3565b60208152600061171d602083018461360e565b6000808335601e1984360301811261374657600080fd5b83018035915067ffffffffffffffff82111561376157600080fd5b6020019150600581901b360382131561377957600080fd5b9250929050565b6000808335601e1984360301811261379757600080fd5b83018035915067ffffffffffffffff8211156137b257600080fd5b6020019150600681901b360382131561377957600080fd5b81810381811115610a7757610a776136f3565b63ffffffff8181168382160190808211156137fa576137fa6136f3565b5092915050565b63ffffffff8281168282160390808211156137fa576137fa6136f3565b600063ffffffff821680613834576138346136f3565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061386b5761386b61383e565b92169190910692915050565b6000808335601e1984360301811261388e57600080fd5b83018035915067ffffffffffffffff8211156138a957600080fd5b60200191503681900382131561377957600080fd5b6000826138cd576138cd61383e565b500490565b60005b838110156138ed5781810151838201526020016138d5565b50506000910152565b600082516135938184602087016138d2565b6000826139175761391761383e565b500690565b602081526000825180602084015261393b8160408501602087016138d2565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a24fa288bd4bdcb1a7a813fb6a838dbea7b30eebacde1df7b8b1ffae0b140b2b64736f6c63430008180033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000000000000000000000000000000000000093a8000000000000000000000000000000000000000000000000000000000005c4900000000000000000000000000000000000000000000000000000000000076a7000000000000000000000000000000000000000000000000000000000000278d000000000000000000000000000000000000000000000000000000000065fb7880","r":"0xaa5361b89cd28a7286f05d29f150da324afb5aa0f3bcfbba5cdc804d579298fc","s":"0x399d7540ed7b98e5ad46b6d13c40883fe03ba08a8dea7b976ba580f06f7cbd45","yParity":"0x0","hash":"0x8cfe1718165e545c4415c8ec5d5f8d4e4a09fa3a1a9dd23f47c8f9a453a90394"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xaa8cafe1e3a77a900e4c02e1008708ebeb53ed2b67bc69ab5ecdbc2cb3c12764","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x39e2ef882251c30edfaab014fc4fb8bac61ba012da652c983ea2aad2df13fd4f","transactionsRoot":"0x6364ed9212c3b8319e6b6eef8e7a671af2eccbf2a9a4346b41ceb6f73e0ff210","receiptsRoot":"0xd79f6831f8b92a1c99f459eb237da5decf888063f4598ea13d2cdd2a22031b71","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x11","gasLimit":"0x1c9c380","gasUsed":"0x529e0","timestamp":"0x66f70aa8","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x96b3b7c","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1b","gasLimit":"0x6b600","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b50610528806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047c565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d1565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b9150604084013590509250925092565b60006020828403121561048e57600080fd5b610497826103fa565b9392505050565b600080604083850312156104b157600080fd5b6104ba836103fa565b91506104c8602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122020d7e8b980aa0c2b46b040d513e5ae1f916c9610cc2589a32d3485f141c4d93e64736f6c63430008180033","r":"0x8f5ad71c84849cbab2fa01cb31dd2a3d54cd6930732cd6a6549d42d240412275","s":"0x13c6d7b562acf1977f47c0adab76b9c65cc32ef63aa6c85425fa4c77e7b5671b","yParity":"0x0","hash":"0x27ff860d43af616478665f6b796d139e3ccaa80150ea832e0abe67638df48560"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x4bb7d4d7274a71c12835a9908de46427fa0aeb6b6a094449480e3e1ca9f10fed","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x6880b9f2ba56739326fd916422582e691daa4968c1b52dddb845f2451b30891a","transactionsRoot":"0x31bc5e93aead970f271283deb6ca355074adc1010f3a4a1542428c755b966e62","receiptsRoot":"0x19e95c9ae96bcfaa35669da649163148d0399e12912dd92bd34428c6538b2f08","logsBloom":"0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x15","gasLimit":"0x1c9c380","gasUsed":"0x64c4","timestamp":"0x66f70aac","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x594cf47","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x20","gasLimit":"0x8b2e","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","value":"0x0","accessList":[],"input":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x729bcd296b95dc9fbbed8beeb842a62c4366afa92bbccac951f3dacff067c0fd","s":"0x79af5af4279f42a9f851e8e3eeb8ac3c64b30df48035e1584ae364c9e678585a","yParity":"0x0","hash":"0x0407695da91c821753dcf7e68b5284a95c603e466b110cce53db7254dd1f1278"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x4d32275554dd98a99e2baab8bcef04f67cb68824f3545606eefafcd92a5ab084","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x051bfecf5c6ae419a8a1fbfe60dd107dff1f7bf19a8b943081c8b2516ca5786c","transactionsRoot":"0xba82992e01153cc8d5e590cc34429d464cfe2513921b1518a1f02f90208fd30a","receiptsRoot":"0x7b53a3abfae44e76a96947cbf7a683de50e0d3965aac07c37afbc4ff76cf5900","logsBloom":"0x00000000001000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000200000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x10","gasLimit":"0x1c9c380","gasUsed":"0x18ad25","timestamp":"0x66f70aa7","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xa99e52f","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1a","gasLimit":"0x2011e6","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a06040523480156200001157600080fd5b5060405162001d4038038062001d40833981016040819052620000349162000116565b6001600160a01b038116608052806200004c62000054565b505062000148565b600054610100900460ff1615620000c15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000114576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012957600080fd5b81516001600160a01b03811681146200014157600080fd5b9392505050565b608051611bc76200017960003960008181610216015281816107a801528181610b490152610c130152611bc76000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000000000000000000000000000000000000000000081565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220157b8fd2af6cc8480450ce674c8687dcbdc3c3a46aa68acd19633d494b70b35b64736f6c63430008180033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9","r":"0xcca04f1dd985285653fda93806ee790eb9e1d794e136d5e0816f99fd69c63dbe","s":"0x6cd4fd5cfe695a5e87c41e8951b37f84f0a3bcbc7fca657cbd5fd6220eec65ed","yParity":"0x1","hash":"0xf1758982dc7bf99172677ea91a0550c18e81f94f596a492e4a70e35aca4d7a0f"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x4e339f47e5c414499741f7c79245654e069b212d8954eb2f72386530919f3cad","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xac240dd219971f687d79ca94796c3a86109ff3623d7d2ffeefa6fc77f1a3c789","transactionsRoot":"0x9b700b25c1e0ad12218163cd48532766a6bcb2d328a5f827292078779fa39df2","receiptsRoot":"0x89ef21aa8a62383f43ba6ca07738bf12f98c1e3bfcf998feaac1e018c3073312","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000040000000000000800000000000000000000000000000000040000000000000000000000000000000008000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x4","gasLimit":"0x1c9c380","gasUsed":"0x8be1b","timestamp":"0x66f70a9b","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x295b061d","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x8","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x78ac6076b6039c4adc742125c02744cfaba9f22ce6a722b861927d667231d136","s":"0x616ad4526e3fca6caeb6caef070e9005814e29eccfd515db8813bda044848560","yParity":"0x0","hash":"0x78097108572bd24a0d9d38402e08deba85f116288eb014d9f4716584e68fc3b1"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x3b59b970eb7bc45e575508d12aeb8864040232a3ea40fa4948cbb06dda6d03ec","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x838256faba0b640b202bfb24b206077bbe67f6903be14ce9a0e9e81c0be1e07a","transactionsRoot":"0xf173ec3c1ea9a705928a5bb6807298c1cd21919dab66d2b2f1aa51d346eea981","receiptsRoot":"0xaa45a2a04ed9d4c583eb8f9da3f7d4f739fac790d69d3576958868fe06b97388","logsBloom":"0x00000000000001000000000000000000000000000000000000000000000000000000000020000800000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000008000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000","difficulty":"0x0","number":"0xb","gasLimit":"0x1c9c380","gasUsed":"0x455c56","timestamp":"0x66f70aa2","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x13a227bf","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x11","gasLimit":"0x38e9cd","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6101206040523480156200001257600080fd5b50604051620034a9380380620034a983398101604081905262000035916200014b565b6001600160a01b0380861660805280851660a05280841660c05280831660e0528116610100526200006562000070565b5050505050620001cb565b600054610100900460ff1615620000dd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000130576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200014857600080fd5b50565b600080600080600060a086880312156200016457600080fd5b8551620001718162000132565b6020870151909550620001848162000132565b6040870151909450620001978162000132565b6060870151909350620001aa8162000132565b6080870151909250620001bd8162000132565b809150509295509295909350565b60805160a05160c05160e051610100516132686200024160003960008181610636015281816106e001528181610b0e015281816113ea0152818161187e015261196e01526000610542015260006102e601526000818161027a01528181611369015261203c0152600061041401526132686000f3fe6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125b8565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107265760405162461bcd60e51b815260040161071d90612609565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca008361267d565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126a7565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f3833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126cf565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126ec565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a309190612736565b610a4c5760405162461bcd60e51b815260040161071d90612758565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b4b5760405162461bcd60e51b815260040161071d90612609565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321383398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321383398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca008261267d565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a0565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127bc565b9250846001600160a01b03166000805160206131f383398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126a7565b90915550506040518381526001600160a01b038616906000805160206131f38339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c79190612736565b6110e35760405162461bcd60e51b815260040161071d90612758565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127f8565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128e561090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612862565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114275760405162461bcd60e51b815260040161071d90612609565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca008261267d565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b6020526040812054611545908390612877565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca008361289e565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126a7565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a0565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f3833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b2565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126cf565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126ec565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a0565b905061090b565b611e408383612877565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128cb565b9091555060408051610940810190915261090e8082526000916120a491839133916128e56020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612862565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff8082111561257457600080fd5b61258089838a016124fb565b9097509550602088013591508082111561259957600080fd5b506125a6888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125ce57600080fd5b84356125d9816123f6565b935060208501356125e9816123f6565b925060408501356125f9816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261268c5761268c612667565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126c7576126c7612691565b505092915050565b6000602082840312156126e157600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274857600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127b5576127b5612691565b5060000390565b8181038181111561090b5761090b612691565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061280c6060830187896127cf565b828103602084015261281f8186886127cf565b9150508260408301529695505050505050565b6000815160005b818110156128535760208185018101518683015201612839565b50600093019283525090919050565b60006123ee6128718386612832565b84612832565b818103600083128015838313168383128216171561289757612897612691565b5092915050565b6000826128ad576128ad612667565b500790565b6000602082840312156128c457600080fd5b5051919050565b6000600182016128dd576128dd612691565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220517f086e259f6d4f92497674fa8b87966eef35c1226b2e6369f2a0bdacf2836964736f6c634300081800330000000000000000000000004242424242424242424242424242424242424242000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x13c1e805158ef4263e9ca596d313c2b591a42a775128739d58793545ddbe41d6","s":"0x26b803878bfbdb09586e24d70fdea1ae68e15d5ad41c31dc93144ff5f02de927","yParity":"0x0","hash":"0x9d7618bb7ef673579140052a4a7c85411d535c358070cafc44f12ba93b41d504"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x12","gasLimit":"0x213a94","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a06040523480156200001157600080fd5b5060405162001ec538038062001ec58339810160408190526200003491620001a8565b6001600160a01b038116620000cb5760405162461bcd60e51b815260206004820152604c60248201527f44656c617965645769746864726177616c526f757465722e636f6e737472756360448201527f746f723a205f656967656e506f644d616e616765722063616e6e6f742062652060648201526b7a65726f206164647265737360a01b608482015260a4015b60405180910390fd5b6001600160a01b038116608052620000e2620000e9565b50620001da565b600054610100900460ff1615620001535760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401620000c2565b60005460ff9081161015620001a6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b600060208284031215620001bb57600080fd5b81516001600160a01b0381168114620001d357600080fd5b9392505050565b608051611cc8620001fd600039600081816101fa0152610be00152611cc86000f3fe60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f0565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a13565b610aba565b34801561032357600080fd5b50610337610332366004611a13565b610b3d565b6040516101bf9190611a3f565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4d565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a13565b610f0e565b34801561043157600080fd5b50610170610440366004611a86565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acc565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b22565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b3f565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b89565b6105f65760405162461bcd60e51b815260040161055990611bab565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c09565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1c565b8154811061071d5761071d611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1c565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c45565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1c565b8154811061082757610827611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c2f565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c09565b905060008167ffffffffffffffff8111156108dd576108dd611c45565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1c565b8154811061096557610965611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c2f565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b89565b610a675760405162461bcd60e51b815260040161055990611bab565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c2f565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1c565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000000000000000000000000000000000000000000000169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b22565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5b565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c09565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5b565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5b565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b22565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b3f565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1c565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1c565b8154811061163357611633611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1c565b43101561168657506116a6565b805161169b906001600160e01b031686611c1c565b9450506001016115e2565b6116b08184611c1c565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1c565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000919060409081850190868401855b828110156119e3576119d3848351611985565b92840192908501906001016119c0565b5091979650505050505050565b600060208284031215611a0257600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2657600080fd5b8235611a3181611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6057600080fd5b8235611a6b81611933565b91506020830135611a7b81611933565b809150509250929050565b60008060008060808587031215611a9c57600080fd5b8435611aa781611933565b93506020850135611ab781611933565b93969395505050506040820135916060013590565b602080825282518282015282810151604080840181905281516060850181905260009392830191849160808701905b8084101561088657611b0e828651611985565b938501936001939093019290820190611afb565b600060208284031215611b3457600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9b57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf3565b80820180821115610b3757610b37611bf3565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122008c24927adbff47182d3eb1466e14dfabce75639c9bbc81de71096db25fc9c1c64736f6c634300081800330000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6","r":"0x2a0b5f9100f7d81d5e51572af3a51495b2e49ebcf1cbf6b95537eb33f7902695","s":"0x7c6e95996e5a93dbfa6db9d515bfe2fa20d0a73dfdaa4c062b1b432eb2d5215b","yParity":"0x0","hash":"0x9bd6c2f1599b5920937e13a0c12fe12f3068761b0d4a90c433151d72a33fde39"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xd3c3c4b6b66ab42e6e9b84d7f396454f5a9212ef507e4dd2a84f445431da8a3f","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xbbd6e6bd8de645458b36ed4cff55e712b214582f0c152f65765297758d31a783","transactionsRoot":"0x855013f720ccd702aec935532639dcef108f91fa01157325db231a0b43746c10","receiptsRoot":"0x90a2833b52eb6d5ecf87b37dd58dbe638856554ade414aae215ca785da0a0eb0","logsBloom":"0x00000000000000000000000000000000400400000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000010000000000000400008000000000000000000010000000020000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000001000","difficulty":"0x0","number":"0x3","gasLimit":"0x1c9c380","gasUsed":"0x117c36","timestamp":"0x6706bcf4","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x2df40f25","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x23","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xc0a7b19300e3a62bb39720bb7f3e6f2495a8b5b458711cde29a959608a96a8c5","s":"0x7dfde7c49b1526788f27330de1d1d6cf69c9e6cbab7ed0690a7f66db1b180eda","yParity":"0x0","hash":"0xa83da15132426dca2d366630cae6c6649cf93e8bb299ee41e9454ff5bfeab007"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x24","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x36608299fd01b85ce31bcb4fcc5bc7574b7604c6abab5de64a9e7757fe895a06","s":"0x4c94375d1bc0de220c08aec78c77b95f069f55de601b1cec7d17b49983e9dc60","yParity":"0x1","hash":"0x1d15ae6b01cf50f6bdf794782572de5debf9cb020716eec546a5c1a6694dd6d5"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x35626da0b0baac650ac5b7d13960a8734301f228cfec3f46aea30afabcb21714","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xb8b1fcce51aa6f25c8b3c78a8dc523db32dbac96fdbfef8c9e3f7277017df846","transactionsRoot":"0xa3a53906e7f1749c01ad8aa73cd9b2ea6f22c4405f6582ea115a8999ac608e3d","receiptsRoot":"0x79a451a6002bea4b8a67b7beb7030963438a07f984f20efc1937c9c7edda72b9","logsBloom":"0x00002000000000000000000000000000400000000000000000000000020000000000000000000000000400000000000080c00010000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000100000000000500000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000080000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x4","gasLimit":"0x1c9c380","gasUsed":"0x1a3a51","timestamp":"0x6706bcf5","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x28a5e3c4","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x25","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xaa92bdc2fea27caffa5c9ac432fc1736596e6871e184c56e09d7c594e4e8da43","s":"0x781a342dde8da23234b676c1fa520729863e5439cab876b6881ac3a35f82040f","yParity":"0x0","hash":"0x5dead20b4c3f813eda86ad0db00804216aad53392b85ccdd5cd198703ebdb975"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x26","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xb66fc3f16156b377b16a95e4ea551ae0aaf62e9fbe1313de94c4c63027d37c66","s":"0x54fb14f5ae3312862147a0b3d4316765f93edf41862b17526fb436b08f31fda0","yParity":"0x1","hash":"0xbd7d5d3864c8406f75b4c00be61882ed8ea14af686ec047a447f9a3e6248d2fd"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x27","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xb27c55378bf01e7d79ce7588dc2db3c194399cec863c2dc9152f49262d930e1c","s":"0x626e3afd84414562018828947ffb0dd903bd1f7942e68731b0d3473cb4f15e5","yParity":"0x1","hash":"0x035e03a62da66d8142ad00924a2580943aa598f94e17ea62d19cbf8b0d149f5d"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xa3356220292a2edda521f0380afd9bae4ff6f8588cb946f7d6250889f2d9112d","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xc9cd2aca848f691e6863b1d6a4fed297b2e0a578344b834ab201d96e35b61118","transactionsRoot":"0xe1d1cbfb01978c1988c2fa7b51fb82b54fa312cb4774afa4b685610e00ad2145","receiptsRoot":"0x784dd9e98b6f00ad271e8b84c4917bcbab2b639c31336dfd48bb5ef7325810ac","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000008000000000","difficulty":"0x0","number":"0xa","gasLimit":"0x1c9c380","gasUsed":"0x64cb","timestamp":"0x6706bcfb","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x15f1a115","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x35","gasLimit":"0x9368","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x1a320654ee68f747d801bcc60a6177ee938cc50783fbd59166c28f09f8d3bfbf","s":"0x3b7646ba70136a901182bac2c05db7b23db34a1559320bbbbc6d61d8d90836b5","yParity":"0x0","hash":"0x347311dd2eae16c262b7d5948ddae2c69deee29611e6e968d4aa42329bdb45bc"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x30dcb574013c3ec13eecea8728e4881e1d615d9486b7dbc7a9839a6ea6804571","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x9183adba3bd63c90f7eee6947d1909efc2a21f707a30e829c7beb8637db75955","transactionsRoot":"0x07e3113720f1b8ed321e4705858714a3b0303cca47276b9044bdaeadfdff67eb","receiptsRoot":"0x087d4ee1935be24af9aa78fe9da795cb4ca7c5df06de0c1b70ec7ff88d2f8663","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000100000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xc","gasLimit":"0x1c9c380","gasUsed":"0x1791e5","timestamp":"0x6706bcfd","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x10d9f02e","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x37","gasLimit":"0x1ea1d1","maxFeePerGas":"0x2669445d","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100e2565b600054610100900460ff161561008e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e0576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051611a82610119600039600081816105e801528181610628015281816106d90152818161071901526107ac0152611a826000f3fe60806040526004361061012e5760003560e01c8063715018a6116100ab578063a69df4b51161006f578063a69df4b5146103c0578063a7d31809146103d5578063c0c53b8b146103f5578063c891091314610415578063f2fde38b1461046c578063f83d08ba1461048c57600080fd5b8063715018a61461034257806373e289d0146103575780638456cb591461036d5780638da5cb5b14610382578063953ef807146103a057600080fd5b80634d5431ea116100f25780634d5431ea146102865780634f1ef286146102bf57806352d1902d146102d257806358b96e27146102e75780635c975abb1461031f57600080fd5b806317d89c4e146101ad5780632df4e21e146101f95780632e1a7d4d1461022f5780633659cfe6146102515780633f4ba83a1461027157600080fd5b366101a85733600090815260fd60205260408120805434929061015290849061154c565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709061019e9034815260200190565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101e66101c8366004611574565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561020557600080fd5b506101e6610214366004611574565b6001600160a01b0316600090815260fd602052604090205490565b34801561023b57600080fd5b5061024f61024a366004611591565b6104a1565b005b34801561025d57600080fd5b5061024f61026c366004611574565b6105de565b34801561027d57600080fd5b5061024f6106bd565b34801561029257600080fd5b506101e66102a1366004611574565b6001600160a01b0316600090815260fd602052604090206001015490565b61024f6102cd3660046115c0565b6106cf565b3480156102de57600080fd5b506101e661079f565b3480156102f357600080fd5b5060fc54610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b34801561032b57600080fd5b5060655460ff1660405190151581526020016101f0565b34801561034e57600080fd5b5061024f610852565b34801561036357600080fd5b506101e6610e1081565b34801561037957600080fd5b5061024f610864565b34801561038e57600080fd5b506033546001600160a01b0316610307565b3480156103ac57600080fd5b5060fb54610307906001600160a01b031681565b3480156103cc57600080fd5b5061024f610874565b3480156103e157600080fd5b5061024f6103f03660046116d0565b61090b565b34801561040157600080fd5b5061024f61041036600461178f565b610b9f565b34801561042157600080fd5b50610451610430366004611574565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f0565b34801561047857600080fd5b5061024f610487366004611574565b610de9565b34801561049857600080fd5b5061024f610e5f565b6104a9610ed5565b33600090815260fd6020526040902080548211156104ec5780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105005750428160010154115b1561052d576001810154604051635f6e272d60e11b815260048101919091524260248201526044016104e3565b8181600001600082825461054191906117da565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f193505050501580156105a4573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106265760405162461bcd60e51b81526004016104e3906117ed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066f600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146106955760405162461bcd60e51b81526004016104e390611839565b61069e81610f1b565b604080516000808252602082019092526106ba91839190610f23565b50565b6106c5611093565b6106cd6110ed565b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107175760405162461bcd60e51b81526004016104e3906117ed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610760600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146107865760405162461bcd60e51b81526004016104e390611839565b61078f82610f1b565b61079b82826001610f23565b5050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461083f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e3565b50600080516020611a0683398151915290565b61085a611093565b6106cd600061113f565b61086c611093565b6106cd611191565b61087c610ed5565b33600090815260fd602052604081205490036108ad5760405163b38340cf60e01b81523360048201526024016104e3565b6108b9610e104261154c565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed8439161090191815260200190565b60405180910390a2565b60fc546001600160a01b03163314610938576040516302a5785160e31b81523360048201526024016104e3565b610940610ed5565b83600081900361096357604051630c43ac2960e41b815260040160405180910390fd5b82600003610984576040516351d432c560e11b815260040160405180910390fd5b8361098f8285611885565b116109c1578361099f8285611885565b604051637899ec7160e01b8152600481019290925260248201526044016104e3565b60005b818163ffffffff161015610aa257600087878363ffffffff168181106109ec576109ec61189c565b9050602002016020810190610a019190611574565b6001600160a01b038116600090815260fd60205260409020805491925090861115610a5b578054604051634f779ceb60e01b81526001600160a01b03841660048201526024810191909152604481018790526064016104e3565b600281018054906000610a6d836118b2565b919050555085816000016000828254610a8691906117da565b9250508190555050508080610a9a906118cb565b9150506109c4565b5060fb5460405163d66eaabd60e01b81526001600160a01b039091169063d66eaabd908690610adb908d908d908d9089906004016118ee565b6000604051808303818588803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b5050505050887f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375884604051610b3f91815260200190565b60405180910390a260fc546001600160a01b03166108fc85610b618487611885565b610b6b91906117da565b6040518115909202916000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015610bbf5750600054600160ff909116105b80610bd95750303b158015610bd9575060005460ff166001145b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e3565b6000805460ff191660011790558015610c5f576000805461ff0019166101001790555b6001600160a01b038416610cae57604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b60448201526064016104e3565b6001600160a01b038316610d0557604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e657200000000000060448201526064016104e3565b6001600160a01b038216610d4c57604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b60448201526064016104e3565b610d546111ce565b610d5c6111fd565b610d64611224565b610d6d8361113f565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610de3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610df1611093565b6001600160a01b038116610e565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6106ba8161113f565b610e67610ed5565b33600090815260fd60205260408120549003610e985760405163366095e160e11b81523360048201526024016104e3565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106cd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e3565b6106ba611093565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5b57610f5683611253565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb5575060408051601f3d908101601f19168201909252610fb29181019061192e565b60015b6110185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e3565b600080516020611a0683398151915281146110875760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e3565b50610f568383836112ef565b6033546001600160a01b031633146106cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e3565b6110f5611314565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611199610ed5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111223390565b600054610100900460ff166111f55760405162461bcd60e51b81526004016104e390611947565b6106cd61135d565b600054610100900460ff166106cd5760405162461bcd60e51b81526004016104e390611947565b600054610100900460ff1661124b5760405162461bcd60e51b81526004016104e390611947565b6106cd61138d565b6001600160a01b0381163b6112c05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e3565b600080516020611a0683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6112f8836113c0565b6000825111806113055750805b15610f5657610de38383611400565b60655460ff166106cd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e3565b600054610100900460ff166113845760405162461bcd60e51b81526004016104e390611947565b6106cd3361113f565b600054610100900460ff166113b45760405162461bcd60e51b81526004016104e390611947565b6065805460ff19169055565b6113c981611253565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6114685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104e3565b600080846001600160a01b03168460405161148391906119b6565b600060405180830381855af49150503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50915091506114eb8282604051806060016040528060278152602001611a26602791396114f6565b925050505b92915050565b6060831561150557508161152f565b8251156115155782518084602001fd5b8160405162461bcd60e51b81526004016104e391906119d2565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156114f0576114f0611536565b6001600160a01b03811681146106ba57600080fd5b60006020828403121561158657600080fd5b813561152f8161155f565b6000602082840312156115a357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115d357600080fd5b82356115de8161155f565b9150602083013567ffffffffffffffff808211156115fb57600080fd5b818501915085601f83011261160f57600080fd5b813581811115611621576116216115aa565b604051601f8201601f19908116603f01168101908382118183101715611649576116496115aa565b8160405282815288602084870101111561166257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f84011261169657600080fd5b50813567ffffffffffffffff8111156116ae57600080fd5b6020830191508360208260051b85010111156116c957600080fd5b9250929050565b60008060008060008060008060c0898b0312156116ec57600080fd5b88359750602089013567ffffffffffffffff8082111561170b57600080fd5b818b0191508b601f83011261171f57600080fd5b81358181111561172e57600080fd5b8c602082850101111561174057600080fd5b6020830199508098505060408b013591508082111561175e57600080fd5b5061176b8b828c01611684565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b6000806000606084860312156117a457600080fd5b83356117af8161155f565b925060208401356117bf8161155f565b915060408401356117cf8161155f565b809150509250925092565b818103818111156114f0576114f0611536565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820281158282048414176114f0576114f0611536565b634e487b7160e01b600052603260045260246000fd5b6000600182016118c4576118c4611536565b5060010190565b600063ffffffff8083168181036118e4576118e4611536565b6001019392505050565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561194057600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156119ad578181015183820152602001611995565b50506000910152565b600082516119c8818460208701611992565b9190910192915050565b60208152600082518060208401526119f1816040850160208701611992565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e6ad2eed1ecf7ce82da9919d74f91b18da2f843c4e01e2d1ecb23ce863370e2964736f6c63430008180033","r":"0xef6d2627aca235e91afc1b0f132ffb47052459f2bb37567055664cf81e409ec1","s":"0x6be6efddf37c5b1be8b65da966bb9b54ab1b802806dd24b4c099b42e16591112","yParity":"0x1","hash":"0x81dd07606181907ca6e800a6bcba734d7b5df943909c5dad6ddfcddeb9ea1376"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x5dae897ded4889dc65ca7023d8497e57d010b51b7abde53c24f26b3485eacd81","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x4adebc0172fdaea5d2ac026122aa0d272ab18d8fd696aebed6167f4f60c41890","transactionsRoot":"0x4ee3dfee691c56dfe481dc32b8ec71e25be2e327085f960ccea6ad086bab3242","receiptsRoot":"0x5841fc0c5f6649de1300501456004f4d035d53082e28f9f54bdf60e958f9efcd","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000002000000000000000000000000000000000000000000000000000000100000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000001000000000100000000000000","difficulty":"0x0","number":"0x13","gasLimit":"0x1c9c380","gasUsed":"0xed72","timestamp":"0x66f70aaa","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x748a993","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1e","gasLimit":"0x15b43","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","value":"0x0","accessList":[],"input":"0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000","r":"0x9e698007ebebcf4e729e2d57e2bb133d51dc3a79a3d33e52492a454f7d70fc6f","s":"0x55a4c74b4896d8c63d04ee7d13d043025dc495eadd77f811ca2c4696dcd7f248","yParity":"0x0","hash":"0xe6912062264ab60c930b10c03ab097ecc60709d30f3cce8135383cce209f8e71"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x512c15c3770e645be22b8b577a2116eae30b1a28221ddff3feb06ada33df8b1c","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xb9af728822fa59aa889ddaf4da209d98893f482bcc0579fe6a2aca79206fed4c","transactionsRoot":"0x3827b67f22a45025f05672e5eb96c9fa1036bf7a447ac060e257f015908a1955","receiptsRoot":"0xb2ec0fee729eb803e50a9d501540de5b535d55ba3f2e065ba0a15b723eb56080","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000000000000000400000000000","difficulty":"0x0","number":"0x7","gasLimit":"0x1c9c380","gasUsed":"0x4cfa36","timestamp":"0x66f70a9e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1d762812","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xc","gasLimit":"0x640a91","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6101006040523480156200001257600080fd5b5060405162005beb38038062005beb833981016040819052620000359162000140565b6001600160a01b0380841660805280821660c052821660a0526200005862000065565b50504660e0525062000194565b600054610100900460ff1615620000d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000125576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013d57600080fd5b50565b6000806000606084860312156200015657600080fd5b8351620001638162000127565b6020850151909350620001768162000127565b6040850151909250620001898162000127565b809150509250925092565b60805160a05160c05160e0516159c26200022960003960006126560152600081816105b10152818161101d0152818161139901528181611be5015281816129b001528181613e5b0152614347015260006107620152600081816104f901528181610feb0152818161136701528181611c7901528181612a7d01528181612c0001528181613f8101526143ed01526159c26000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614954565b610de8565b005b6103da6103ea3660046149a7565b610f2d565b6103da6103fd3660046149cb565b610fe0565b6103da610410366004614a0c565b611097565b6103da610423366004614a25565b6111d6565b61035a6104363660046149a7565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149cb565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a90565b611218565b6103da6104bc3660046149cb565b61135c565b61035a6104cf3660046149a7565b609b6020526000908152604090205481565b6103da6104ef366004614b37565b61140c565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610364565b61051b6105413660046149a7565b6001600160a01b039081166000908152609960205260409020600101541690565b6105756105703660046149a7565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e3c565b611626565b610575610606366004614e78565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614ea9565b611656565b6103da610644366004614a0c565b6116ef565b61051b6106573660046149a7565b609a602052600090815260409020546001600160a01b031681565b6105756106803660046149a7565b611700565b6103da611721565b61035a61069b366004614f38565b609860209081526000928352604080842090915290825290205481565b6103da6106c6366004615019565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150a9565b611961565b6040516103649190615134565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da610738366004615147565b611a33565b61035a61074b3660046149a7565b609f6020526000908152604090205481565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b610575610792366004614a0c565b609e6020526000908152604090205460ff1681565b6105756107b536600461517c565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec3660046149a7565b60a16020526000908152604090205481565b61086e61080c3660046149a7565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151a8565b611b05565b61035a62034bc081565b6108d46108cf3660046149a7565b611bbe565b60405161036492919061522a565b6103ba6108f03660046149a7565b611f75565b6103da61090336600461524f565b61242e565b6103da6109163660046152a7565b61254b565b6103da6109293660046149a7565b6125dc565b61035a612652565b6103da610944366004614a0c565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152c3565b905060200201602081019061098691906149a7565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152d9565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614bd9565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152c3565b9050602002810190610b4e9190615310565b610b5c906020810190615330565b9050878783818110610b7057610b706152c3565b9050602002810190610b829190615310565b610b8c9080615330565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152c3565b9050602002810190610c269190615310565b610c379060608101906040016149a7565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152c3565b9050602002810190610cdc9190615310565b610ced9060608101906040016149a7565b8a8a86818110610cff57610cff6152c3565b9050602002810190610d119190615310565b610d1b9080615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152c3565b9050602002810190610d739190615310565b610d81906020810190615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152c3565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615379565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153cb565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa491906153fa565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615417565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061103f5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61105b5760405162461bcd60e51b8152600401610ab590615461565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154be565b61111f5760405162461bcd60e51b8152600401610ab5906154db565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806113bb5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113d75760405162461bcd60e51b8152600401610ab590615461565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152c3565b90506020028101906114bd9190615523565b8989848181106114cf576114cf6152c3565b90506020028101906114e19190615330565b8989868181106114f3576114f36152c3565b9050602002013588888781811061150c5761150c6152c3565b90506020020160208101906115219190615539565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154be565b6115e75760405162461bcd60e51b8152600401610ab5906154db565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155ca565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614bd9565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152c3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152c3565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153cb565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5291906155dd565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea9190810190615655565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152c3565b602002602001018181525050611f68565b8351611dc7906001615725565b6001600160401b03811115611dde57611dde614bd9565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614bd9565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152c3565b6020026020010151838281518110611e8757611e876152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152c3565b6020026020010151828281518110611ed357611ed36152c3565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615738565b81518110611f1b57611f1b6152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615738565b81518110611f5b57611f5b6152c3565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152d9565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614bd9565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152c3565b602002602001015182600081518110612396576123966152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152c3565b6020026020010151816000815181106123e3576123e36152c3565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152c3565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f00000000000000000000000000000000000000000000000000000000000000004603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270691906153fa565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615417565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152c3565b602002602001015186858151811061295b5761295b6152c3565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152c3565b60200260200101516001600160a01b031603612a60577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb89888584815181106129f0576129f06152c3565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612abc57612abc6152c3565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154be565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612c4057612c406152c3565b6020026020010151868581518110612c5a57612c5a6152c3565b60200260200101516040518463ffffffff1660e01b8152600401612c809392919061574b565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361576f565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d999083908590615788565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157a1565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157a1565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c82826157de565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615379565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152d9565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152c3565b6020026020010151858581518110613220576132206152c3565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615738565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f9392919061574b565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152c3565b90506020020160208101906134be91906149a7565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152c3565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615725565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f9392919061574b565b60006139776105f387615841565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157a1565b63ffffffff16613a1d9190615725565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab560608701604088016149a7565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615330565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615330565b9050811015613d23574360a16000613c0b60a08b018b615330565b85818110613c1b57613c1b6152c3565b9050602002016020810190613c3091906149a7565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157a1565b63ffffffff16613c6a9190615725565b1115613c885760405162461bcd60e51b8152600401610ab59061584d565b613d1b613c9860208901896149a7565b33613ca660a08b018b615330565b85818110613cb657613cb66152c3565b9050602002016020810190613ccb91906149a7565b613cd860c08c018c615330565b86818110613ce857613ce86152c3565b905060200201358a8a87818110613d0157613d016152c3565b9050602002016020810190613d1691906149a7565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615330565b9050811015614114574360a16000613d6c60a08c018c615330565b85818110613d7c57613d7c6152c3565b9050602002016020810190613d9191906149a7565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157a1565b63ffffffff16613dcb9190615725565b1115613de95760405162461bcd60e51b8152600401610ab59061584d565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615330565b83818110613e1b57613e1b6152c3565b9050602002016020810190613e3091906149a7565b6001600160a01b031603613f7f576000613e4d60208a018a6149a7565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613e8e60c08e018e615330565b87818110613e9e57613e9e6152c3565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1691906155dd565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615330565b88818110613f5c57613f5c6152c3565b9050602002016020810190613f7191906149a7565b856138ee565b50505061410c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea133898985818110613fc157613fc16152c3565b9050602002016020810190613fd691906149a7565b613fe360a08d018d615330565b86818110613ff357613ff36152c3565b905060200201602081019061400891906149a7565b61401560c08e018e615330565b87818110614025576140256152c3565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615330565b858181106140ce576140ce6152c3565b90506020020160208101906140e391906149a7565b6140f060c08d018d615330565b86818110614100576141006152c3565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061419290869086906004016158d5565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d3919061592c565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b1300906143809088908890879060040161574b565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615956565b036144f25750565b600181600481111561450657614506615956565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615956565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615956565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615956565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615725565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b6020808252825182820181905260009190848201906040850190845b818110156148ef578351835292840192918401916001016148d3565b50909695505050505050565b60006060828403121561490d57600080fd5b50919050565b60008083601f84011261492557600080fd5b5081356001600160401b0381111561493c57600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561496957600080fd5b61497385856148fb565b925060608401356001600160401b0381111561498e57600080fd5b61499a86828701614913565b9497909650939450505050565b6000602082840312156149b957600080fd5b81356149c481614837565b9392505050565b6000806000606084860312156149e057600080fd5b83356149eb81614837565b925060208401356149fb81614837565b929592945050506040919091013590565b600060208284031215614a1e57600080fd5b5035919050565b60008060008060408587031215614a3b57600080fd5b84356001600160401b0380821115614a5257600080fd5b614a5e888389016147b2565b90965094506020870135915080821115614a7757600080fd5b50614a84878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aac57600080fd5b8835614ab781614837565b97506020890135614ac781614837565b9650604089013595506060890135945060808901356001600160401b0380821115614af157600080fd5b614afd8c838d016147b2565b909650945060a08b0135915080821115614b1657600080fd5b50614b238b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b5357600080fd5b88356001600160401b0380821115614b6a57600080fd5b614b768c838d016147b2565b909a50985060208b0135915080821115614b8f57600080fd5b614b9b8c838d016147b2565b909850965060408b0135915080821115614bb457600080fd5b614bc08c838d016147b2565b909650945060608b0135915080821115614b1657600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1157614c11614bd9565b60405290565b604080519081016001600160401b0381118282101715614c1157614c11614bd9565b604051601f8201601f191681016001600160401b0381118282101715614c6157614c61614bd9565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c69565b60006001600160401b03821115614c9f57614c9f614bd9565b5060051b60200190565b600082601f830112614cba57600080fd5b81356020614ccf614cca83614c86565b614c39565b8083825260208201915060208460051b870101935086841115614cf157600080fd5b602086015b84811015614d16578035614d0981614837565b8352918301918301614cf6565b509695505050505050565b600082601f830112614d3257600080fd5b81356020614d42614cca83614c86565b8083825260208201915060208460051b870101935086841115614d6457600080fd5b602086015b84811015614d165780358352918301918301614d69565b600060e08284031215614d9257600080fd5b614d9a614bef565b9050614da58261484c565b8152614db36020830161484c565b6020820152614dc46040830161484c565b604082015260608201356060820152614ddf60808301614c7b565b608082015260a08201356001600160401b0380821115614dfe57600080fd5b614e0a85838601614ca9565b60a084015260c0840135915080821115614e2357600080fd5b50614e3084828501614d21565b60c08301525092915050565b600060208284031215614e4e57600080fd5b81356001600160401b03811115614e6457600080fd5b614e7084828501614d80565b949350505050565b600060208284031215614e8a57600080fd5b813560ff811681146149c457600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ec157600080fd5b85356001600160401b0380821115614ed857600080fd5b9087019060e0828a031215614eec57600080fd5b90955060208701359080821115614f0257600080fd5b50614f0f888289016147b2565b909550935050604086013591506060860135614f2a81614e9b565b809150509295509295909350565b60008060408385031215614f4b57600080fd5b8235614f5681614837565b91506020830135614f6681614837565b809150509250929050565b600060408284031215614f8357600080fd5b614f8b614c17565b905081356001600160401b0380821115614fa457600080fd5b818401915084601f830112614fb857600080fd5b8135602082821115614fcc57614fcc614bd9565b614fde601f8301601f19168201614c39565b92508183528681838601011115614ff457600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a0868803121561503157600080fd5b853561503c81614837565b9450602086013561504c81614837565b935060408601356001600160401b038082111561506857600080fd5b61507489838a01614f71565b9450606088013591508082111561508a57600080fd5b5061509788828901614f71565b95989497509295608001359392505050565b600080604083850312156150bc57600080fd5b82356150c781614837565b915060208301356001600160401b038111156150e257600080fd5b6150ee85828601614ca9565b9150509250929050565b60008151808452602080850194506020840160005b838110156151295781518752958201959082019060010161510d565b509495945050505050565b6020815260006149c460208301846150f8565b6000806020838503121561515a57600080fd5b82356001600160401b0381111561517057600080fd5b61482b85828601614913565b6000806040838503121561518f57600080fd5b823561519a81614837565b946020939093013593505050565b600080600080608085870312156151be57600080fd5b84356151c981614837565b93506020850135925060408501356151e081614837565b9396929550929360600135925050565b60008151808452602080850194506020840160005b838110156151295781516001600160a01b031687529582019590820190600101615205565b60408152600061523d60408301856151f0565b828103602084015261120f81856150f8565b60008060006060848603121561526457600080fd5b833561526f81614837565b925060208401356001600160401b0381111561528a57600080fd5b61529686828701614f71565b925050604084013590509250925092565b6000606082840312156152b957600080fd5b6149c483836148fb565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261532657600080fd5b9190910192915050565b6000808335601e1984360301811261534757600080fd5b8301803591506001600160401b0382111561536157600080fd5b6020019150600581901b36038213156144cf57600080fd5b60608101823561538881614837565b6001600160a01b0390811683526020840135906153a482614837565b16602083015260408301356153b881614c69565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561540c57600080fd5b81516149c481614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154d057600080fd5b81516149c481614e9b565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261532657600080fd5b60006020828403121561554b57600080fd5b81356149c481614e9b565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a08501526155b160e08501826151f0565b905060c083015184820360c086015261120f82826150f8565b6020815260006149c46020830184615556565b6000602082840312156155ef57600080fd5b5051919050565b600082601f83011261560757600080fd5b81516020615617614cca83614c86565b8083825260208201915060208460051b87010193508684111561563957600080fd5b602086015b84811015614d16578051835291830191830161563e565b6000806040838503121561566857600080fd5b82516001600160401b038082111561567f57600080fd5b818501915085601f83011261569357600080fd5b815160206156a3614cca83614c86565b82815260059290921b840181019181810190898411156156c257600080fd5b948201945b838610156156e95785516156da81614837565b825294820194908201906156c7565b9188015191965090935050508082111561570257600080fd5b506150ee858286016155f6565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261570f565b818103818111156109c2576109c261570f565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157815761578161570f565b5060010190565b828152604060208201526000614e706040830184615556565b6000602082840312156157b357600080fd5b81356149c481614c69565b80546001600160a01b0319166001600160a01b0392909216919091179055565b81356157e981614837565b6157f381836157be565b5060018101602083013561580681614837565b61581081836157be565b50604083013561581f81614c69565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d80565b6020808252606e9082015260008051602061596d83398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b8281526000602060406020840152835180604085015260005b8181101561590a578581018301518582016060015282016158ee565b506000606082860101526060601f19601f830116850101925050509392505050565b60006020828403121561593e57600080fd5b81516001600160e01b0319811681146149c457600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a264697066735822122077e25f9c65861d9bf718b537427551bab355394bebd5f95b15c4df6972929f1b64736f6c63430008180033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c8530000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6","r":"0xc68dd6e1bb76f2dbd61057cfa25406f59dc73abcbe7b592a25d2b0dc17ee078a","s":"0x7230339b928106000fc5638382c44be8adf4637d7ea0cebde9077f998e65c8a1","yParity":"0x1","hash":"0xb02326216f7078ab71c5aeb30702c1981388c12cefe2b4368b3600f6686ea6d4"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xfd88461004175c7f26b13da9021a7bad73662b8e53f8ff5d43d61cbbe580d878","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x5e3617cebf42f80442edf3849604315be1fb4d978c4e23b9c450790915c7f6bd","transactionsRoot":"0xe7484eff1622d18a26a77993314e8ec677bd070de71d4070090bece4f141e742","receiptsRoot":"0x6a875adc6a5daab18b715d9b3131c68d0a25ac3427d19b0fdc4de81f06f5eaeb","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x9","gasLimit":"0x1c9c380","gasUsed":"0x19e847","timestamp":"0x6706bcfa","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x18adfc2e","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x34","gasLimit":"0x21ab88","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b50611dbf806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114a7565b60405180910390f35b6100a361009e3660046114e3565b610245565b6040516100879190611641565b6100c36100be3660046116be565b6106c5565b604051610087919061170d565b6100e36100de3660046117a5565b6107d2565b604051610087919061189e565b6101036100fe366004611959565b610eea565b60405161008791906119bc565b61012361011e3660046119f4565b6110a8565b604051610087929190611a2b565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a4c565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a62565b82828151811061022b5761022b611a4c565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a7b565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a7b565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a7b565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a4c565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611a98565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a4c565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a4c565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a7b565b6001600160a01b031681526020018383815181106105b6576105b6611a4c565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a4c565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b28565b6001600160601b031681525085858151811061068257610682611a4c565b6020026020010151828151811061069b5761069b611a4c565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a4c565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a7b565b8282815181106107b2576107b2611a4c565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a7b565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b51565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611b98565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c4f565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611b98565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a4c565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a4c565b905060200201358e88600001518681518110610a9257610a92611a4c565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c78565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a4c565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a4c565b905060200201358d8d8860ff16818110610c2d57610c2d611a4c565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611ca1565b85606001518560ff1681518110610cc057610cc0611a4c565b60200260200101518481518110610cd957610cd9611a4c565b63ffffffff9092166020928302919091019091015282610cf881611cd4565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a4c565b60200260200101518181518110610d8957610d89611a4c565b6020026020010151828281518110610da357610da3611a4c565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a4c565b602002602001018190525050508080610df390611ced565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a7b565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d0c565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611b98565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d36565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611b98565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a4c565b602002602001015187868581518110610ff257610ff2611a4c565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c78565b6001600160c01b031682828151811061108b5761108b611a4c565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a4c565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d36565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611b98565b60008151811061117657611176611a4c565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c78565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a4c565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611cd4565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d55565b909216918061132981611d68565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b91506020838101356001600160401b038111156113f257600080fd5b8401601f8101861361140357600080fd5b803561141661141182611395565b611365565b81815260059190911b8201830190838101908883111561143557600080fd5b928401925b8284101561145c57833561144d81611337565b8252928401929084019061143a565b80955050505050509250929050565b60008151808452602080850194506020840160005b8381101561149c57815187529582019590820190600101611480565b509495945050505050565b6020815260006114ba602083018461146b565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114de816114c1565b919050565b6000806000606084860312156114f857600080fd5b833561150381611337565b92506020848101356001600160401b038082111561152057600080fd5b818701915087601f83011261153457600080fd5b8135818111156115465761154661134f565b611558601f8201601f19168501611365565b9150808252888482850101111561156e57600080fd5b8084840185840137600084828401015250809450505050611591604085016114d3565b90509250925092565b600082825180855260208086019550808260051b8401018186016000805b8581101561163357868403601f19018a52825180518086529086019086860190845b8181101561161e57835180516001600160a01b03168452898101518a8501526040908101516001600160601b031690840152928801926060909201916001016115da565b50509a86019a945050918401916001016115b8565b509198975050505050505050565b6020815260006114ba602083018461159a565b600082601f83011261166557600080fd5b8135602061167561141183611395565b8083825260208201915060208460051b87010193508684111561169757600080fd5b602086015b848110156116b3578035835291830191830161169c565b509695505050505050565b600080604083850312156116d157600080fd5b82356116dc81611337565b915060208301356001600160401b038111156116f757600080fd5b61170385828601611654565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561174e5783516001600160a01b031683529284019291840191600101611729565b50909695505050505050565b60008083601f84011261176c57600080fd5b5081356001600160401b0381111561178357600080fd5b6020830191508360208260051b850101111561179e57600080fd5b9250929050565b600080600080600080608087890312156117be57600080fd5b86356117c981611337565b955060208701356117d9816114c1565b945060408701356001600160401b03808211156117f557600080fd5b818901915089601f83011261180957600080fd5b81358181111561181857600080fd5b8a602082850101111561182a57600080fd5b60208301965080955050606089013591508082111561184857600080fd5b5061185589828a0161175a565b979a9699509497509295939492505050565b60008151808452602080850194506020840160005b8381101561149c57815163ffffffff168752958201959082019060010161187c565b6000602080835283516080828501526118ba60a0850182611867565b905081850151601f19808684030160408701526118d78383611867565b925060408701519150808684030160608701526118f48383611867565b60608801518782038301608089015280518083529194508501925084840190600581901b8501860160005b8281101561194b5784878303018452611939828751611867565b9588019593880193915060010161191f565b509998505050505050505050565b60008060006060848603121561196e57600080fd5b833561197981611337565b925060208401356001600160401b0381111561199457600080fd5b6119a086828701611654565b92505060408401356119b1816114c1565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561174e578351835292840192918401916001016119d8565b600080600060608486031215611a0957600080fd5b8335611a1481611337565b92506020840135915060408401356119b1816114c1565b828152604060208201526000611a44604083018461159a565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7457600080fd5b5051919050565b600060208284031215611a8d57600080fd5b81516114ba81611337565b60006020808385031215611aab57600080fd5b82516001600160401b03811115611ac157600080fd5b8301601f81018513611ad257600080fd5b8051611ae061141182611395565b81815260059190911b82018301908381019087831115611aff57600080fd5b928401925b82841015611b1d57835182529284019290840190611b04565b979650505050505050565b600060208284031215611b3a57600080fd5b81516001600160601b03811681146114ba57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b7e57600080fd5b8260051b8085606085013791909101606001949350505050565b60006020808385031215611bab57600080fd5b82516001600160401b03811115611bc157600080fd5b8301601f81018513611bd257600080fd5b8051611be061141182611395565b81815260059190911b82018301908381019087831115611bff57600080fd5b928401925b82841015611b1d578351611c17816114c1565b82529284019290840190611c04565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c6f604083018486611c26565b95945050505050565b600060208284031215611c8a57600080fd5b81516001600160c01b03811681146114ba57600080fd5b600060208284031215611cb357600080fd5b81516114ba816114c1565b634e487b7160e01b600052601160045260246000fd5b600060018201611ce657611ce6611cbe565b5060010190565b600060ff821660ff8103611d0357611d03611cbe565b60010192915050565b604081526000611d20604083018587611c26565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a44604083018461146b565b8181038181111561133157611331611cbe565b600061ffff808316818103611d7f57611d7f611cbe565b600101939250505056fea26469706673582212202b3e36f430d5f7f12f8124a33676c0954c36bdaf4a71ac7e145cf85fb593480b64736f6c63430008180033","r":"0xd0ec90178ab3d1ba71d2f4f7efaa81e509ba54370db3831f6aa8185964d1b859","s":"0x563e4660f07c0afbe8cef7cc6d4d43816eba6fd15d34f4e6260e64e7a4660884","yParity":"0x0","hash":"0x8f14b9796b5fdc7f61b3d1da93ce68ad4120b4b9f67658e90957430462d0864f"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xee6cb7f6ae5c0ed43bfc6d081e3fc7dea15f3d312f33bd7874634a2922cce52e","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x6acb49f271d1a8d198d0b98c0f154697b63a2af445353e14bd0082f6f3ce4c95","transactionsRoot":"0x2e4849fb1752ca03e0033aedbe66d293e0c08393e0a54a97edcafaf2e3f6403f","receiptsRoot":"0xf7923dfd203bf1133de6657c6800f59f52fb1178b4f9595a4398206b158bd8bf","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000002000000000000000000000008000000000000000000000000000000000000000000020000000000000000000000000040000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x5","gasLimit":"0x1c9c380","gasUsed":"0x8be1b","timestamp":"0x66f70a9c","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x246231ea","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x9","gasLimit":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xc5ce85c01e8d9f4fdb978bc911d86917046340559eed7ba17eef05bf5c1d2a09","s":"0x28f3d7c299d27a33ff5b2eaf8440f2cedc6436d386c770fae241adcd442f3993","yParity":"0x1","hash":"0xb030f2d4fab25e0e55fbea021823b7c402506436d336bb86ae31f21a36dbe5a7"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x8a0b101ff5da236bc23c5fed4a0a05ea37bba048eebc6889bd7d468e4a46dec4","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x2a5f85cceaaab63119ad6a5ca41b2a8af3fae5952c235a4fc17e909e4e2f6fce","transactionsRoot":"0x820c3079cc4bd210b8d16e34e8547cc100b5c8f433802e8bacbe69c272ff5c01","receiptsRoot":"0x43461e1cf565ba2397481e23f0bc081043ea26f246bf93ffeae460c47a23d634","logsBloom":"0x00002000000000000000000000000008400000000000000000000000020000000000000000000000000000000000000080000000010000000000000000000040004000000000000000000000000002000000000000000000004000000000000000000000000000000000040000000000000000000000000000000100000000000100000000000000100000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000020200000000000000002440000000000000000000000000000000000000000100000000000080000020000000000000000000000000000000000000000","difficulty":"0x0","number":"0x6","gasLimit":"0x1c9c380","gasUsed":"0x9858dd","timestamp":"0x6706bcf7","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1ff867df","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2a","gasLimit":"0x3e0583","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60c06040523480156200001157600080fd5b506040516200389f3803806200389f833981016040819052620000349162000065565b6001600160a01b0391821660a05216608052620000a4565b6001600160a01b03811681146200006257600080fd5b50565b600080604083850312156200007957600080fd5b825162000086816200004c565b602084015190925062000099816200004c565b809150509250929050565b60805160a051613796620001096000396000818161037a015281816106340152818161096701528181610ccf015281816110f0015281816116d0015281816117d2015281816118eb0152611cad0152600081816105290152611e6e01526137966000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d85565b610959565b604051610217929190612e25565b6102b56102b0366004612e4a565b610c15565b6040516102179190612e76565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4a565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4a565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f7f565b610ccd565b61035d610358366004612d85565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc36600461303b565b611240565b604051610217919061308d565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130cb565b61152d565b60405161021791906130fe565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461314a565b6116ce565b61027f610495366004613174565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d1366004613240565b6118e9565b6102546104e436600461328d565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132c9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b610254610559366004613305565b611ac3565b61041461056c366004612e4a565b611b58565b61025461057f3660046132c9565b611c41565b61027f610592366004613347565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133a4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b491906133f5565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613412565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133a4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561348e565b905060200201602081019061084a91906134a4565b8289898481811061085d5761085d61348e565b90506020020135815481106108745761087461348e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61348e565b90506020020135815481106108f4576108f461348e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61348e565b905060200201602081019061093091906134a4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109a45760405162461bcd60e51b8152600401610611906134bf565b6000836001600160401b038111156109be576109be612eee565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612eee565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61348e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361348e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61348e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f91906133f5565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613412565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133a4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61348e565b602002602001015181548110610ea357610ea361348e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161348e565b602002602001015181548110610f1957610f1961348e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613547565b81548110610f6957610f6961348e565b9060005260206000200183878381518110610f8657610f8661348e565b602002602001015181548110610f9e57610f9e61348e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161355a565b6000828152602081208201600019908101919091550190558154829061101990600190613547565b815481106110295761102961348e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61348e565b6020026020010151815481106110725761107261348e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061355a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461112d5760405162461bcd60e51b8152600401610611906134bf565b6000805b8381101561123657600085858381811061114d5761114d61348e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612eee565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761348e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61348e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613547565b6114699190613547565b815481106114795761147961348e565b60009182526020909120015463ffffffff16116114d757600161149c8284613547565b6114a69190613547565b8585815181106114b8576114b861348e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61348e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175091906133f5565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613412565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133a4565b6117c283836123f7565b505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461180f5760405162461bcd60e51b8152600401610611906134bf565b60005b818110156118e357600083838381811061182e5761182e61348e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b91906133f5565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613412565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133a4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613547565b81548110611a8c57611a8c61348e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613547565b81548110611bec57611bec61348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61348e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611cea5760405162461bcd60e51b8152600401610611906134bf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692639004134792611ea1928c9201613570565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135d1565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761348e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561348e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61348e565b6020026020010151611fae9190613661565b611fb89190613678565b611fc2908661369a565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613547565b815481106120fe576120fe61348e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613547565b815481106122b4576122b461348e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374183398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136ba565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374183398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136ba565b811015612646578482815181106125895761258961348e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861348e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61348e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661348e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61348e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261348e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61348e565b60200260200101516000015186848151811061285d5761285d61348e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613547565b81548110612a6c57612a6c61348e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613547565b925050506114ee565b80612aa1816136cd565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136e4565b600080821215612baa57612b9982613704565b612ba39084613720565b9050610cae565b612ba3828461369a565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b0380821115612d0157600080fd5b612d0d89838a01612c80565b90965094506040880135915080821115612d2657600080fd5b50612d3388828901612c80565b969995985093965092949392505050565b60008083601f840112612d5657600080fd5b5081356001600160401b03811115612d6d57600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9b57600080fd5b8435612da681612c31565b93506020850135925060408501356001600160401b03811115612dc857600080fd5b612dd487828801612d44565b95989497509550505050565b60008151808452602080850194506020840160005b83811015612e1a5781516001600160601b031687529582019590820190600101612df5565b509495945050505050565b604081526000612e386040830185612de0565b82810360208401526123ee8185612de0565b60008060408385031215612e5d57600080fd5b82359150612e6d60208401612bb4565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257612ecf83855163ffffffff808251168352806020830151166020840152506001600160601b0360408201511660408301525050565b9284019260609290920191600101612e92565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2657612f26612eee565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5457612f54612eee565b604052919050565b60006001600160401b03821115612f7557612f75612eee565b5060051b60200190565b60008060408385031215612f9257600080fd5b612f9b83612bb4565b91506020808401356001600160401b03811115612fb757600080fd5b8401601f81018613612fc857600080fd5b8035612fdb612fd682612f5c565b612f2c565b81815260059190911b82018301908381019088831115612ffa57600080fd5b928401925b8284101561301857833582529284019290840190612fff565b80955050505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305057600080fd5b61305984613027565b925060208401356001600160401b0381111561307457600080fd5b61308086828701612d44565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257835163ffffffff16835292840192918401916001016130a9565b6000806000606084860312156130e057600080fd5b6130e984612bb4565b95602085013595506040909401359392505050565b815163ffffffff9081168252602080840151909116908201526040808301516001600160601b03169082015260608101610cae565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561315d57600080fd5b61316683612bb4565b9150612e6d60208401613133565b60008060006040848603121561318957600080fd5b8335925060208401356001600160401b0381111561307457600080fd5b600082601f8301126131b757600080fd5b813560206131c7612fd683612f5c565b82815260069290921b840181019181810190868411156131e657600080fd5b8286015b8481101561323557604081890312156132035760008081fd5b61320b612f04565b813561321681612c31565b8152613223828601613133565b818601528352918301916040016131ea565b509695505050505050565b6000806040838503121561325357600080fd5b61325c83612bb4565b915060208301356001600160401b0381111561327757600080fd5b613283858286016131a6565b9150509250929050565b6000806000606084860312156132a257600080fd5b6132ab84612bb4565b92506132b960208501613027565b9150604084013590509250925092565b6000806000606084860312156132de57600080fd5b833592506132ee60208501612bb4565b91506132fc60408501613027565b90509250925092565b6000806000806080858703121561331b57600080fd5b61332485612bb4565b935061333260208601613027565b93969395505050506040820135916060013590565b60008060006060848603121561335c57600080fd5b61336584612bb4565b925061337360208501613133565b915060408401356001600160401b0381111561338e57600080fd5b61339a868287016131a6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561340757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134b657600080fd5b6114ee82613133565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613531565b634e487b7160e01b600052603160045260246000fd5b60006040820160018060a01b038086168452602060406020860152828654808552606087019150876000526020600020945060005b818110156135c35785548516835260019586019592840192016135a5565b509098975050505050505050565b600060208083850312156135e457600080fd5b82516001600160401b038111156135fa57600080fd5b8301601f8101851361360b57600080fd5b8051613619612fd682612f5c565b81815260059190911b8201830190838101908783111561363857600080fd5b928401925b828410156136565783518252928401929084019061363d565b979650505050505050565b8082028115828204841417610cae57610cae613531565b60008261369557634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b0381811683821601908082111561062b5761062b613531565b80820180821115610cae57610cae613531565b6000816136dc576136dc613531565b506000190190565b818103600083128015838313168383128216171561062b5761062b613531565b6000600160ff1b820161371957613719613531565b5060000390565b6001600160601b0382811682821603908082111561062b5761062b61353156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a264697066735822122086a228217be3aa4346ddc514699a0ca7893ec8b64cbf2023e3b1369fe2efcf1164736f6c63430008180033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x8ec4cb1a135c542b181cf48cf17ef9b9746b593f8e54b2830e3c3d8e97698318","s":"0x79083adf5ced81ea9cec42e9a35ed4d219dc3fe4a806b3760f193bdc642b3379","yParity":"0x0","hash":"0xb946c97ddc73b65fa887bf081d4878f2e4e015f758d80c98f9020c8c0c7fd93e"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2b","gasLimit":"0xd175","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x99a88ec400000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377800000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf","r":"0x62b02a6b212c7957efcde6a19e6ecd37b713a7dcc24e890b4664c942edffc149","s":"0x134dc444a9a13b30777a5c79278bcc5d6a6ccf7ecbaa9464d8f36297a2e6e36f","yParity":"0x1","hash":"0x6ea78c3414677766a62f4c541cfb745fdfe0841a3497ea85a3e4ce886192fa5a"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2c","gasLimit":"0x23a344","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a06040523480156200001157600080fd5b506040516200208738038062002087833981016040819052620000349162000116565b6001600160a01b038116608052806200004c62000054565b505062000148565b600054610100900460ff1615620000c15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000114576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012957600080fd5b81516001600160a01b03811681146200014157600080fd5b9392505050565b608051611f07620001806000396000818161030f01528181610466015281816105bf015281816109c501526110250152611f076000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a47565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a60565b6102a261029d366004611a77565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa1565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61034461033f366004611a77565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611ae9565b6109b8565b6103f26103ed366004611b46565b610e0b565b6040516101529190611bbe565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a47565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104ac5760405162461bcd60e51b81526004016104a390611c08565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105fc5760405162461bcd60e51b81526004016104a390611c08565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c7c565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a025760405162461bcd60e51b81526004016104a390611c08565b6000610a30610a1936869003860160408701611cf8565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611eb283398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611eb283398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611eb283398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2a565b6040516020818303038152906040528051906020012060001c610c419190611d6c565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cf8565b90611307565b610c7436899003890189611cf8565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cf8565b610cd6368a90038a0160808b01611dde565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611eb283398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e1d565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce2565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce2565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e5d565b81548110610f9a57610f9a611ce2565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e5d565b858581518110610fd557610fd5611ce2565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e70565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110625760405162461bcd60e51b81526004016104a390611c08565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce2565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e5d565b8154811061121657611216611ce2565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e87565b905084826002811061154957611549611ce2565b6020020151518361155b836000611e9e565b600c811061156b5761156b611ce2565b602002015284826002811061158257611582611ce2565b602002015160200151838260016115999190611e9e565b600c81106115a9576115a9611ce2565b60200201528382600281106115c0576115c0611ce2565b60200201515151836115d3836002611e9e565b600c81106115e3576115e3611ce2565b60200201528382600281106115fa576115fa611ce2565b6020020151516001602002015183611613836003611e9e565b600c811061162357611623611ce2565b602002015283826002811061163a5761163a611ce2565b60200201516020015160006002811061165557611655611ce2565b602002015183611666836004611e9e565b600c811061167657611676611ce2565b602002015283826002811061168d5761168d611ce2565b6020020151602001516001600281106116a8576116a8611ce2565b6020020151836116b9836005611e9e565b600c81106116c9576116c9611ce2565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d6c565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e5d565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b915060208084013567ffffffffffffffff808211156119db57600080fd5b818601915086601f8301126119ef57600080fd5b813581811115611a0157611a01611931565b611a13601f8201601f19168501611970565b91508082528784828501011115611a2957600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a5957600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8a57600080fd5b611a9383611905565b946020939093013593505050565b600080600060608486031215611ab657600080fd5b611abf84611905565b9250602084013563ffffffff81168114611ad857600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0057600080fd5b611b09856118cc565b9350610100601f1982011215611b1e57600080fd5b602085019250604061011f1982011215611b3757600080fd5b50610120840190509250925092565b600080600060408486031215611b5b57600080fd5b833567ffffffffffffffff80821115611b7357600080fd5b818601915086601f830112611b8757600080fd5b813581811115611b9657600080fd5b876020828501011115611ba857600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611bfc57835163ffffffff1683529284019291840191600101611bda565b50909695505050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b03841681526000602084602084015260606040840152835180606085015260005b81811015611cbf57858101830151858201608001528201611ca3565b506000608082860101526080601f19601f83011685010192505050949350505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611d0a57600080fd5b611d12611947565b82358152602083013560208201528091505092915050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8957634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611d9f57600080fd5b611da7611947565b806040840185811115611db957600080fd5b845b81811015611dd3578035845260209384019301611dbb565b509095945050505050565b600060808284031215611df057600080fd5b611df8611947565b611e028484611d8e565b8152611e118460408501611d8e565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e47565b600081611e7f57611e7f611e47565b506000190190565b80820281158282048414176106ff576106ff611e47565b808201808211156106ff576106ff611e4756fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a264697066735822122032bb5054c7a2f6432e5be9a0f6a1c05e87838a89c3e8ae01d982bce76ffd2a6064736f6c63430008180033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c","r":"0x25d86cfe42c843dd08fcb4209207a158f9063bda4b7c5800ca527dfe886009d1","s":"0x280fe05ce23ada73e42e8250c6840bd748525655efbbd9838e1d9dfec7179b87","yParity":"0x0","hash":"0x2954eebba0b60f971d74926f3dc798979d224c59ed6569f26fd86c6e0ded68fb"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2d","gasLimit":"0xd175","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x99a88ec4000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e0000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf","r":"0x1e4718a37222b4afb812e0cb601bc8958641c9ba80f1369770f2bc5b63e4f0a7","s":"0x7ba51e2bfb4ccea42f5e64e7f59b10623112bbe13c1dceaef51e33d3fedb575a","yParity":"0x1","hash":"0xea8d6e33dc169f638f10dce03cffccc4d4e8594d0211415af99ea7330abe0032"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2e","gasLimit":"0x62cb3c","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6101c06040523480156200001257600080fd5b5060405162005c5c38038062005c5c833981016040819052620000359162000254565b604080518082018252601681527f4156535265676973747279436f6f7264696e61746f720000000000000000000060208083019182528351808501909452600684526576302e302e3160d01b908401528151902060e08190527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a996101008190524660a05287938793879387939192917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620001358184846040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6080523060c05261012052505050506001600160a01b039384166101405291831661018052821661016052166101a0526200016f62000179565b50505050620002bc565b600054610100900460ff1615620001e65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000239576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200025157600080fd5b50565b600080600080608085870312156200026b57600080fd5b845162000278816200023b565b60208601519094506200028b816200023b565b60408601519093506200029e816200023b565b6060860151909250620002b1816200023b565b939692955090935050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051615898620003c46000396000818161074e0152818161113101528181611f0c01528181612b4a01528181613257015261367101526000818161069301528181611e970152818161233601528181612aca015281816131ae0152818161339f01526135f001526000818161065901528181610f0401528181611ed501528181612a4c01528181612c3201528181612cac0152818161312e01526136ed015260008181610571015281816129a20152613076015260006138f4015260006139430152600061391e01526000613877015260006138a1015260006138cb01526158986000f3fe608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e6103393660046143e3565b610940565b005b61036061034e366004614424565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461444f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144ac565b610b5e565b61033e6103ea3660046145b0565b610b8a565b61033e6103fd366004614424565b610c34565b61033e6104103660046144ac565b610c41565b6103606104233660046144ac565b609f6020526000908152604090205481565b6103606104433660046144ac565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614424565b610cf4565b61049461047f366004614424565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614600565b610e31565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614633565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144ac565b610ec2565b6103b1610541366004614424565b610eeb565b61033e6105543660046144ac565b610f77565b61033e6105673660046144ac565b610f88565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6104946105a13660046144ac565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144ac565b610f99565b60405161036a919061464e565b61033e6105ed3660046146a6565b611018565b6106056106003660046144ac565b6113ee565b60405161036a9190614749565b61033e611462565b610494610628366004614633565b6001805460ff9092161b9081161490565b61033e6106473660046147ce565b61152e565b600154610360565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6103b1610689366004614424565b611588565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b61033e6106c3366004614802565b6115b2565b61033e611707565b6103606106de3660046148b9565b61171b565b6103866106f1366004614424565b611765565b6000546103b1906201000090046001600160a01b031681565b6103b1611770565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614a57565b611789565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614b50565b611aa2565b61036060a05481565b6107c66107c1366004614bf8565b611c07565b60405161036a9190614c9d565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614ce7565b611cb6565b609c54610360565b61033e610823366004614dcd565b611d1c565b61033e610836366004614f8a565b611d2f565b6108aa610849366004614633565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144ac565b611fef565b61033e6108ff366004614424565b612065565b6109336109123660046144ac565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a919061505e565b6001546002906004908116036109715760405162461bcd60e51b81526004016109689061506c565b60405180910390fd5b60005b82811015610a48576000848483818110610990576109906150a3565b90506020020160208101906109a591906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614711565b6002811115610a0157610a01614711565b90525080519091506000610a14826121c1565b90506000610a2a826001600160c01b031661222c565b9050610a378585836122f8565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a716150a3565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b666123e5565b6001600160a01b0316600090815260c860205260409020805460ff19166001179055565b60013360009081526099602052604090206001015460ff166002811115610bb357610bb3614711565b14610be85760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c299084906150ff565b60405180910390a250565b610c3c6123e5565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb89190615112565b6001600160a01b0316336001600160a01b031614610ce85760405162461bcd60e51b81526004016109689061512f565b610cf181612444565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d659190615179565b610d815760405162461bcd60e51b81526004016109689061519b565b60015481811614610dfa5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c29565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e6e57610e6e6150a3565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610eca6123e5565b6001600160a01b0316600090815260c860205260409020805460ff19169055565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610f53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190615112565b610f7f6123e5565b610cf181612549565b610f906123e5565b610cf1816125b2565b6040805180820190915260008082526020820152610ebc6110137f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de684604051602001610ff89291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061261b565b612669565b6001546002906004908116036110405760405162461bcd60e51b81526004016109689061506c565b600061108884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90508483146110c25760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b838110156113e55760008585838181106110e1576110e16150a3565b919091013560f81c91503690506000898985818110611102576111026150a3565b905060200281019061111491906151e3565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f341092290602401602060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a4919061522c565b63ffffffff1681146111e35760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b8281101561138a576000848483818110611203576112036150a3565b905060200201602081019061121891906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561126357611263614711565b600281111561127457611274614711565b90525080519091506000611287826121c1565b905060016001600160c01b03821660ff8b161c8116146112d45760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161131f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b5061137d83838f8f8d908e6001611336919061525f565b9261134393929190615272565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122f892505050565b50909250506001016111e7565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a2505050508060010190506110c5565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561144857611448614711565b600281111561145957611459614711565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d39190615179565b6114ef5760405162461bcd60e51b81526004016109689061519b565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6115366123e5565b609654829060ff908116908216106115795760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115838383612789565b505050565b609c818154811061159857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146115f95760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116669187908790819084018382808284376000920191909152505060965460ff1691506126f89050565b90506000611673836121c1565b905060018085015460ff16600281111561168f5761168f614711565b1480156116a457506001600160c01b03821615155b80156116c257506116c26001600160c01b0383811690831681161490565b156113e5576113e58787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b61170f6123e5565b6117196000612bbe565b565b600061175b7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a8787878787604051602001610ff89695949392919061529c565b9695505050505050565b6000610ebc826121c1565b60006117846064546001600160a01b031690565b905090565b60018054600091908116036117b05760405162461bcd60e51b81526004016109689061506c565b33600090815260c8602052604090205460ff166118015760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118395760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118453388612c10565b90506118a533828888808060200260200160405190810160405280939291908181526020016000905b8282101561189a5761188b60408302860136819003810190615324565b8152602001906001019061186e565b505050505087612d45565b60006118ec33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b90506000609760008e8e6000818110611907576119076150a3565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b909104909416928101929092528451805192945091611972576119726150a3565b602002602001015163ffffffff161115611a9357611a178d8d600081811061199c5761199c6150a3565b9050013560f81c60f81b60f81c83604001516000815181106119c0576119c06150a3565b60200260200101513385602001516000815181106119e0576119e06150a3565b60200260200101518c8c60008181106119fb576119fb6150a3565b905060400201803603810190611a119190615324565b866132e5565b611a9388886000818110611a2d57611a2d6150a3565b9050604002016020016020810190611a4591906144ac565b8e8e600090600192611a5993929190615272565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b50505050505050505050505050565b6001805460009190811603611ac95760405162461bcd60e51b81526004016109689061506c565b33600090815260c8602052604090205460ff16611b1a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b263385612c10565b90506000611b6f33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611bb757611bb76150a3565b602002602001015163ffffffff161115611bfc5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c2457611c246144c9565b604051908082528060200260200182016040528015611c4d578160200160208202803683370190505b50905060005b8351811015611cae57611c7f85858381518110611c7257611c726150a3565b60200260200101516134b4565b828281518110611c9157611c916150a3565b63ffffffff90921660209283029190910190910152600101611c53565b509392505050565b60018054600290811603611cdc5760405162461bcd60e51b81526004016109689061506c565b6115833384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b611d246123e5565b61158383838361356d565b600054610100900460ff1615808015611d4f5750600054600160ff909116105b80611d695750303b158015611d69575060005460ff166001145b611dcc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611def576000805461ff0019166101001790555b82518451148015611e01575081518351145b611e325760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e3b89612bbe565b611e45868661374f565b611e4e88612549565b611e57876125b2565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166001600160a01b03199283161790925585548085018755850180547f0000000000000000000000000000000000000000000000000000000000000000841690831617905585549384019095559190920180547f000000000000000000000000000000000000000000000000000000000000000090921691909316179091555b8451811015611f9e57611f96858281518110611f5557611f556150a3565b6020026020010151858381518110611f6f57611f6f6150a3565b6020026020010151858481518110611f8957611f896150a3565b602002602001015161356d565b600101611f37565b508015611bfc576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b611ff76123e5565b6001600160a01b03811661205c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610cf181612bbe565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dc9190615112565b6001600160a01b0316336001600160a01b03161461210c5760405162461bcd60e51b81526004016109689061512f565b60015419811960015419161461218a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c29565b6000818152609860205260408120548082036121e05750600092915050565b60008381526098602052604090206121f9600183615340565b81548110612209576122096150a3565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061223a8461383f565b61ffff166001600160401b03811115612255576122556144c9565b6040519080825280601f01601f19166020018201604052801561227f576020820181803683370190505b5090506000805b825182108015612297575061010081105b156122ee576001811b9350858416156122de578060f81b8383815181106122c0576122c06150a3565b60200101906001600160f81b031916908160001a9053508160010191505b6122e781615353565b9050612286565b5090949350505050565b60018260200151600281111561231057612310614711565b1461231a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366acfefe9061236f9088908690889060040161536c565b6020604051808303816000875af115801561238e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b2919061539c565b90506001600160c01b038116156123de576123de856123d9836001600160c01b031661222c565b612836565b5050505050565b336123ee611770565b6001600160a01b0316146117195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166124d25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ebc61262861386a565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b604080518082019091526000808252602082015260008080612699600080516020615843833981519152866153db565b90505b6126a581613991565b909350915060008051602061584383398151915282830983036126de576040805180820190915290815260208101919091529392505050565b60008051602061584383398151915260018208905061269c565b60008061270484613a13565b9050808360ff166001901b116127825760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff16600281111561286a5761286a614711565b1461289f5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b6096546000906128b390859060ff166126f8565b905060006128c0836121c1565b90506001600160c01b0382166129015760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129186001600160c01b0383811690831681161490565b61294d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129668482613b9b565b6001600160c01b038116612a355760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401600060405180830381600087803b1580156129e657600080fd5b505af11580156129fa573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe590612a83908a908a906004016153ef565b600060405180830381600087803b158015612a9d57600080fd5b505af1158015612ab1573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612b039087908a90600401615413565b600060405180830381600087803b158015612b1d57600080fd5b505af1158015612b31573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612b839087908a90600401615413565b600060405180830381600087803b158015612b9d57600080fd5b505af1158015612bb1573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906313542a4e90602401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f919061542c565b90506000819003610ebc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf79ce588484612ce487610f99565b6040518463ffffffff1660e01b8152600401612d0293929190615445565b6020604051808303816000875af1158015612d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612782919061542c565b6020808201516000908152609a909152604090205460ff1615612d935760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612dcf5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e1a918891889188919061171b565b8351613d5c565b612e4560405180606001604052806060815260200160608152602001606081525090565b6000612e8d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90506000612e9a886121c1565b90506001600160c01b038216612edb5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f1d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612f55919061525f565b10612f8a5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612f948982613b9b565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051612fc491906150ff565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff166002811115612ffe57612ffe614711565b14613117576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff19169083600281111561305957613059614711565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150639926ee7d906130ae908d9089906004016154b5565b600060405180830381600087803b1580156130c857600080fd5b505af11580156130dc573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb2795290613167908d908c908c90600401615529565b600060405180830381600087803b15801561318157600080fd5b505af1158015613195573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250632550477791506131eb908d908d908d908d9060040161554e565b6000604051808303816000875af115801561320a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261323291908101906155de565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d9061328f908c908c908c90600401615641565b6000604051808303816000875af11580156132ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132d6919081019061565b565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361333e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff161461337d5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa1580156133ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341291906156f4565b905061341e8185613f16565b6001600160601b0316866001600160601b0316116134645760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b61346e8885613f3a565b6001600160601b0316816001600160601b031610611bfc5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561353c5760016134d98284615340565b6134e39190615340565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613516576135166150a3565b60009182526020909120015463ffffffff1611613534575050610ebc565b6001016134c5565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135ac5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b6135b7816001615711565b6096805460ff191660ff92909216919091179055806135d68186612789565b60405160016296b58960e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ff694a77906136299084908890889060040161572a565b600060405180830381600087803b15801561364357600080fd5b505af1158015613657573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b1580156136bf57600080fd5b505af11580156136d3573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561373b57600080fd5b505af1158015611bfc573d6000803e3d6000fd5b6000546201000090046001600160a01b031615801561377657506001600160a01b03821615155b6137f85760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261383b82612444565b5050565b6000805b8215610ebc57613854600184615340565b9092169180613862816157a6565b915050613843565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156138c357507f000000000000000000000000000000000000000000000000000000000000000046145b156138ed57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615843833981519152600360008051602061584383398151915286600080516020615843833981519152888909090890506000613a07827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615843833981519152613f54565b91959194509092505050565b600061010082511115613a9c5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613aad57506000919050565b60008083600081518110613ac357613ac36150a3565b0160200151600160f89190911c81901b92505b8451811015613b9257848181518110613af157613af16150a3565b0160200151600160f89190911c1b9150828211613b865760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613ad6565b50909392505050565b60008281526098602052604081205490819003613c43576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613c5c600184615340565b81548110613c6c57613c6c6150a3565b6000918252602090912001805490915063ffffffff438116911603613cae5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613e7657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613d9c9086908690600401615413565b602060405180830381865afa158015613db9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ddd91906157c7565b6001600160e01b031916146115835760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613e8a8383613ffd565b6001600160a01b0316146115835760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f309061ffff16856157f1565b612782919061581c565b604081015160009061271090613f309061ffff16856157f1565b600080613f5f614363565b613f67614381565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fa457fe5b5082613ff25760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061400c8585614019565b91509150611cae81614087565b600080825160410361404f5760208301516040840151606085015160001a6140438782858561423d565b94509450505050614080565b8251604003614078576020830151604084015161406d86838361432a565b935093505050614080565b506000905060025b9250929050565b600081600481111561409b5761409b614711565b036140a35750565b60018160048111156140b7576140b7614711565b036141045760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561411857614118614711565b036141655760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b600381600481111561417957614179614711565b036141d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b60048160048111156141e5576141e5614711565b03610cf15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142745750600090506003614321565b8460ff16601b1415801561428c57508460ff16601c14155b1561429d5750600090506004614321565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156142f1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661431a57600060019250925050614321565b9150600090505b94509492505050565b6000806001600160ff1b0383168161434760ff86901c601b61525f565b90506143558782888561423d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f8401126143b157600080fd5b5081356001600160401b038111156143c857600080fd5b6020830191508360208260051b850101111561408057600080fd5b600080602083850312156143f657600080fd5b82356001600160401b0381111561440c57600080fd5b6144188582860161439f565b90969095509350505050565b60006020828403121561443657600080fd5b5035919050565b63ffffffff81168114610cf157600080fd5b60008060006060848603121561446457600080fd5b8335925060208401356144768161443d565b929592945050506040919091013590565b6001600160a01b0381168114610cf157600080fd5b80356144a781614487565b919050565b6000602082840312156144be57600080fd5b813561278281614487565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614501576145016144c9565b60405290565b604080519081016001600160401b0381118282101715614501576145016144c9565b604051601f8201601f191681016001600160401b0381118282101715614551576145516144c9565b604052919050565b60006001600160401b03831115614572576145726144c9565b614585601f8401601f1916602001614529565b905082815283838301111561459957600080fd5b828260208301376000602084830101529392505050565b6000602082840312156145c257600080fd5b81356001600160401b038111156145d857600080fd5b8201601f810184136145e957600080fd5b6145f884823560208401614559565b949350505050565b6000806040838503121561461357600080fd5b50508035926020909101359150565b803560ff811681146144a757600080fd5b60006020828403121561464557600080fd5b61278282614622565b815181526020808301519082015260408101610ebc565b60008083601f84011261467757600080fd5b5081356001600160401b0381111561468e57600080fd5b60208301915083602082850101111561408057600080fd5b600080600080604085870312156146bc57600080fd5b84356001600160401b03808211156146d357600080fd5b6146df8883890161439f565b909650945060208701359150808211156146f857600080fd5b5061470587828801614665565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061474557634e487b7160e01b600052602160045260246000fd5b9052565b81518152602080830151604083019161476490840182614727565b5092915050565b803561ffff811681146144a757600080fd5b60006060828403121561478f57600080fd5b6147976144df565b905081356147a48161443d565b81526147b26020830161476b565b60208201526147c36040830161476b565b604082015292915050565b600080608083850312156147e157600080fd5b6147ea83614622565b91506147f9846020850161477d565b90509250929050565b60008060006040848603121561481757600080fd5b833561482281614487565b925060208401356001600160401b0381111561483d57600080fd5b61484986828701614665565b9497909650939450505050565b60006001600160401b0382111561486f5761486f6144c9565b5060051b60200190565b60006040828403121561488b57600080fd5b614893614507565b905061489e82614622565b815260208201356148ae81614487565b602082015292915050565b600080600080600060a086880312156148d157600080fd5b85356148dc81614487565b945060208681013594506040808801356001600160401b0381111561490057600080fd5b8801601f81018a1361491157600080fd5b803561492461491f82614856565b614529565b8082825260208201915060208360061b85010192508c83111561494657600080fd5b6020840193505b8284101561496e5761495f8d85614879565b8252928401929085019061494d565b999c989b5098996060810135995060800135979650505050505050565b6000610100828403121561499e57600080fd5b50919050565b60008083601f8401126149b657600080fd5b5081356001600160401b038111156149cd57600080fd5b6020830191508360208260061b850101111561408057600080fd5b6000606082840312156149fa57600080fd5b614a026144df565b905081356001600160401b03811115614a1a57600080fd5b8201601f81018413614a2b57600080fd5b614a3a84823560208401614559565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c031215614a7657600080fd5b89356001600160401b0380821115614a8d57600080fd5b614a998d838e01614665565b909b50995060208c0135915080821115614ab257600080fd5b614abe8d838e01614665565b9099509750879150614ad38d60408e0161498b565b96506101408c0135915080821115614aea57600080fd5b614af68d838e016149a4565b90965094506101608c0135915080821115614b1057600080fd5b614b1c8d838e016149e8565b93506101808c0135915080821115614b3357600080fd5b50614b408c828d016149e8565b9150509295985092959850929598565b6000806000806000806101608789031215614b6a57600080fd5b86356001600160401b0380821115614b8157600080fd5b614b8d8a838b01614665565b90985096506020890135915080821115614ba657600080fd5b614bb28a838b01614665565b9096509450849150614bc78a60408b0161498b565b9350610140890135915080821115614bde57600080fd5b50614beb89828a016149e8565b9150509295509295509295565b60008060408385031215614c0b57600080fd5b8235614c168161443d565b91506020838101356001600160401b03811115614c3257600080fd5b8401601f81018613614c4357600080fd5b8035614c5161491f82614856565b81815260059190911b82018301908381019088831115614c7057600080fd5b928401925b82841015614c8e57833582529284019290840190614c75565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b81811015614cdb57835163ffffffff1683529284019291840191600101614cb9565b50909695505050505050565b60008060208385031215614cfa57600080fd5b82356001600160401b03811115614d1057600080fd5b61441885828601614665565b6001600160601b0381168114610cf157600080fd5b600082601f830112614d4257600080fd5b81356020614d5261491f83614856565b82815260069290921b84018101918181019086841115614d7157600080fd5b8286015b84811015614dc25760408189031215614d8e5760008081fd5b614d96614507565b8135614da181614487565b815281850135614db081614d1c565b81860152835291830191604001614d75565b509695505050505050565b600080600060a08486031215614de257600080fd5b614dec858561477d565b92506060840135614dfc81614d1c565b915060808401356001600160401b03811115614e1757600080fd5b614e2386828701614d31565b9150509250925092565b600082601f830112614e3e57600080fd5b81356020614e4e61491f83614856565b808382526020820191506060602060608602880101945087851115614e7257600080fd5b602087015b85811015614e9657614e89898261477d565b8452928401928101614e77565b5090979650505050505050565b600082601f830112614eb457600080fd5b81356020614ec461491f83614856565b8083825260208201915060208460051b870101935086841115614ee657600080fd5b602086015b84811015614dc2578035614efe81614d1c565b8352918301918301614eeb565b600082601f830112614f1c57600080fd5b81356020614f2c61491f83614856565b82815260059290921b84018101918181019086841115614f4b57600080fd5b8286015b84811015614dc25780356001600160401b03811115614f6e5760008081fd5b614f7c8986838b0101614d31565b845250918301918301614f4f565b600080600080600080600080610100898b031215614fa757600080fd5b614fb08961449c565b9750614fbe60208a0161449c565b9650614fcc60408a0161449c565b9550614fda60608a0161449c565b94506080890135935060a08901356001600160401b0380821115614ffd57600080fd5b6150098c838d01614e2d565b945060c08b013591508082111561501f57600080fd5b61502b8c838d01614ea3565b935060e08b013591508082111561504157600080fd5b5061504e8b828c01614f0b565b9150509295985092959890939650565b60208101610ebc8284614727565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156150df576020818501810151868301820152016150c3565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061278260208301846150b9565b60006020828403121561512457600080fd5b815161278281614487565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561518b57600080fd5b8151801515811461278257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e198436030181126151fa57600080fd5b8301803591506001600160401b0382111561521457600080fd5b6020019150600581901b360382131561408057600080fd5b60006020828403121561523e57600080fd5b81516127828161443d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ebc57610ebc615249565b6000808585111561528257600080fd5b8386111561528f57600080fd5b5050820193919092039150565b600060c08201888352602060018060a01b03808a166020860152604089604087015260c0606087015283895180865260e08801915060208b01955060005b81811015615304578651805160ff16845286015185168684015295850195918301916001016152da565b505060808701989098525050505060a09091019190915250949350505050565b60006040828403121561533657600080fd5b6127828383614879565b81810381811115610ebc57610ebc615249565b60006001820161536557615365615249565b5060010190565b60018060a01b038416815282602082015260606040820152600061539360608301846150b9565b95945050505050565b6000602082840312156153ae57600080fd5b81516001600160c01b038116811461278257600080fd5b634e487b7160e01b600052601260045260246000fd5b6000826153ea576153ea6153c5565b500690565b6001600160a01b03831681526040602082018190526000906145f8908301846150b9565b8281526040602082015260006145f860408301846150b9565b60006020828403121561543e57600080fd5b5051919050565b6001600160a01b0384168152610160810161546d602083018580358252602090810135910152565b615487606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e0840137825161012083015260208301516101408301526145f8565b60018060a01b03831681526040602082015260008251606060408401526154df60a08401826150b9565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906153939083018486615500565b60018060a01b038516815283602082015260606040820152600061175b606083018486615500565b600082601f83011261558757600080fd5b8151602061559761491f83614856565b8083825260208201915060208460051b8701019350868411156155b957600080fd5b602086015b84811015614dc25780516155d181614d1c565b83529183019183016155be565b600080604083850312156155f157600080fd5b82516001600160401b038082111561560857600080fd5b61561486838701615576565b9350602085015191508082111561562a57600080fd5b5061563785828601615576565b9150509250929050565b838152604060208201526000615393604083018486615500565b6000602080838503121561566e57600080fd5b82516001600160401b0381111561568457600080fd5b8301601f8101851361569557600080fd5b80516156a361491f82614856565b81815260059190911b820183019083810190878311156156c257600080fd5b928401925b828410156156e95783516156da8161443d565b825292840192908401906156c7565b979650505050505050565b60006020828403121561570657600080fd5b815161278281614d1c565b60ff8181168382160190811115610ebc57610ebc615249565b60006060820160ff8616835260206001600160601b03808716602086015260406060604087015283875180865260808801915060208901955060005b8181101561579657865180516001600160a01b031684528601518516868401529585019591830191600101615766565b50909a9950505050505050505050565b600061ffff8083168181036157bd576157bd615249565b6001019392505050565b6000602082840312156157d957600080fd5b81516001600160e01b03198116811461278257600080fd5b6001600160601b0381811683821602808216919082811461581457615814615249565b505092915050565b60006001600160601b0380841680615836576158366153c5565b9216919091049291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a26469706673582212201548f9af61e602bb8d6829508f90d0118c101ac55f6e1786ac860c8fab06071f64736f6c634300081800330000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e800000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36","r":"0xc330e92e4761c940a9b6e9b67f01c7451bf63ca854b965aed6841886a50eb3fc","s":"0x6e5ac5f272ce26a3f5145d0bf333e728499b82cba98c09e1617b6e72cad084fa","yParity":"0x0","hash":"0x6f2e9bd251a2571cc3055e8c9e09a3d96a581e7d28ccc39d866ea10889e1730d"}},"impersonated_sender":null}],"ommers":[]}],"transactions":[{"info":{"transaction_hash":"0xd3871eb6a2abee19230609004acda2e37090663ebffa73f1cc1de44467665fda","transaction_index":3,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":11740,"gas_limit":24386,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":4445,"gas_limit":16862,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x","nonce":51,"gas_used":33172},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4a90bc","logs":[{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000008000000000000000000010100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000"},"block_hash":"0xfd88461004175c7f26b13da9021a7bad73662b8e53f8ff5d43d61cbbe580d878","block_number":8},{"info":{"transaction_hash":"0x2954eebba0b60f971d74926f3dc798979d224c59ed6569f26fd86c6e0ded68fb","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x8f86403a4de0bb5791fa46b8e795c547942fe4cf","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x8f86403a4de0bb5791fa46b8e795c547942fe4cf","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a06040523480156200001157600080fd5b506040516200208738038062002087833981016040819052620000349162000116565b6001600160a01b038116608052806200004c62000054565b505062000148565b600054610100900460ff1615620000c15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000114576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012957600080fd5b81516001600160a01b03811681146200014157600080fd5b9392505050565b608051611f07620001806000396000818161030f01528181610466015281816105bf015281816109c501526110250152611f076000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a47565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a60565b6102a261029d366004611a77565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa1565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61034461033f366004611a77565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611ae9565b6109b8565b6103f26103ed366004611b46565b610e0b565b6040516101529190611bbe565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a47565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104ac5760405162461bcd60e51b81526004016104a390611c08565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105fc5760405162461bcd60e51b81526004016104a390611c08565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c7c565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a025760405162461bcd60e51b81526004016104a390611c08565b6000610a30610a1936869003860160408701611cf8565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611eb283398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611eb283398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611eb283398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2a565b6040516020818303038152906040528051906020012060001c610c419190611d6c565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cf8565b90611307565b610c7436899003890189611cf8565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cf8565b610cd6368a90038a0160808b01611dde565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611eb283398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e1d565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce2565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce2565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e5d565b81548110610f9a57610f9a611ce2565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e5d565b858581518110610fd557610fd5611ce2565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e70565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110625760405162461bcd60e51b81526004016104a390611c08565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce2565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e5d565b8154811061121657611216611ce2565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e87565b905084826002811061154957611549611ce2565b6020020151518361155b836000611e9e565b600c811061156b5761156b611ce2565b602002015284826002811061158257611582611ce2565b602002015160200151838260016115999190611e9e565b600c81106115a9576115a9611ce2565b60200201528382600281106115c0576115c0611ce2565b60200201515151836115d3836002611e9e565b600c81106115e3576115e3611ce2565b60200201528382600281106115fa576115fa611ce2565b6020020151516001602002015183611613836003611e9e565b600c811061162357611623611ce2565b602002015283826002811061163a5761163a611ce2565b60200201516020015160006002811061165557611655611ce2565b602002015183611666836004611e9e565b600c811061167657611676611ce2565b602002015283826002811061168d5761168d611ce2565b6020020151602001516001600281106116a8576116a8611ce2565b6020020151836116b9836005611e9e565b600c81106116c9576116c9611ce2565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d6c565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e5d565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b915060208084013567ffffffffffffffff808211156119db57600080fd5b818601915086601f8301126119ef57600080fd5b813581811115611a0157611a01611931565b611a13601f8201601f19168501611970565b91508082528784828501011115611a2957600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a5957600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8a57600080fd5b611a9383611905565b946020939093013593505050565b600080600060608486031215611ab657600080fd5b611abf84611905565b9250602084013563ffffffff81168114611ad857600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0057600080fd5b611b09856118cc565b9350610100601f1982011215611b1e57600080fd5b602085019250604061011f1982011215611b3757600080fd5b50610120840190509250925092565b600080600060408486031215611b5b57600080fd5b833567ffffffffffffffff80821115611b7357600080fd5b818601915086601f830112611b8757600080fd5b813581811115611b9657600080fd5b876020828501011115611ba857600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611bfc57835163ffffffff1683529284019291840191600101611bda565b50909695505050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b03841681526000602084602084015260606040840152835180606085015260005b81811015611cbf57858101830151858201608001528201611ca3565b506000608082860101526080601f19601f83011685010192505050949350505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611d0a57600080fd5b611d12611947565b82358152602083013560208201528091505092915050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8957634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611d9f57600080fd5b611da7611947565b806040840185811115611db957600080fd5b845b81811015611dd3578035845260209384019301611dbb565b509095945050505050565b600060808284031215611df057600080fd5b611df8611947565b611e028484611d8e565b8152611e118460408501611d8e565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e47565b600081611e7f57611e7f611e47565b506000190190565b80820281158282048414176106ff576106ff611e47565b808201808211156106ff576106ff611e4756fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a264697066735822122032bb5054c7a2f6432e5be9a0f6a1c05e87838a89c3e8ae01d982bce76ffd2a6064736f6c63430008180033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c","output":"0x608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a47565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a60565b6102a261029d366004611a77565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa1565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b61034461033f366004611a77565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611ae9565b6109b8565b6103f26103ed366004611b46565b610e0b565b6040516101529190611bbe565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a47565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146104ac5760405162461bcd60e51b81526004016104a390611c08565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146105fc5760405162461bcd60e51b81526004016104a390611c08565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c7c565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614610a025760405162461bcd60e51b81526004016104a390611c08565b6000610a30610a1936869003860160408701611cf8565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611eb283398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611eb283398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611eb283398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2a565b6040516020818303038152906040528051906020012060001c610c419190611d6c565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cf8565b90611307565b610c7436899003890189611cf8565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cf8565b610cd6368a90038a0160808b01611dde565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611eb283398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e1d565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce2565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce2565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e5d565b81548110610f9a57610f9a611ce2565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e5d565b858581518110610fd557610fd5611ce2565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e70565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146110625760405162461bcd60e51b81526004016104a390611c08565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce2565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e5d565b8154811061121657611216611ce2565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e87565b905084826002811061154957611549611ce2565b6020020151518361155b836000611e9e565b600c811061156b5761156b611ce2565b602002015284826002811061158257611582611ce2565b602002015160200151838260016115999190611e9e565b600c81106115a9576115a9611ce2565b60200201528382600281106115c0576115c0611ce2565b60200201515151836115d3836002611e9e565b600c81106115e3576115e3611ce2565b60200201528382600281106115fa576115fa611ce2565b6020020151516001602002015183611613836003611e9e565b600c811061162357611623611ce2565b602002015283826002811061163a5761163a611ce2565b60200201516020015160006002811061165557611655611ce2565b602002015183611666836004611e9e565b600c811061167657611676611ce2565b602002015283826002811061168d5761168d611ce2565b6020020151602001516001600281106116a8576116a8611ce2565b6020020151836116b9836005611e9e565b600c81106116c9576116c9611ce2565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d6c565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e5d565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b915060208084013567ffffffffffffffff808211156119db57600080fd5b818601915086601f8301126119ef57600080fd5b813581811115611a0157611a01611931565b611a13601f8201601f19168501611970565b91508082528784828501011115611a2957600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a5957600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8a57600080fd5b611a9383611905565b946020939093013593505050565b600080600060608486031215611ab657600080fd5b611abf84611905565b9250602084013563ffffffff81168114611ad857600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0057600080fd5b611b09856118cc565b9350610100601f1982011215611b1e57600080fd5b602085019250604061011f1982011215611b3757600080fd5b50610120840190509250925092565b600080600060408486031215611b5b57600080fd5b833567ffffffffffffffff80821115611b7357600080fd5b818601915086601f830112611b8757600080fd5b813581811115611b9657600080fd5b876020828501011115611ba857600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611bfc57835163ffffffff1683529284019291840191600101611bda565b50909695505050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b03841681526000602084602084015260606040840152835180606085015260005b81811015611cbf57858101830151858201608001528201611ca3565b506000608082860101526080601f19601f83011685010192505050949350505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611d0a57600080fd5b611d12611947565b82358152602083013560208201528091505092915050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8957634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611d9f57600080fd5b611da7611947565b806040840185811115611db957600080fd5b845b81811015611dd3578035845260209384019301611dbb565b509095945050505050565b600060808284031215611df057600080fd5b611df8611947565b611e028484611d8e565b8152611e118460408501611d8e565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e47565b600081611e7f57611e7f611e47565b506000190190565b80820281158282048414176106ff576106ff611e47565b808201808211156106ff576106ff611e4756fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a264697066735822122032bb5054c7a2f6432e5be9a0f6a1c05e87838a89c3e8ae01d982bce76ffd2a6064736f6c63430008180033","gas_used":1614038,"gas_limit":2152488,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a47565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a60565b6102a261029d366004611a77565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa1565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b61034461033f366004611a77565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611ae9565b6109b8565b6103f26103ed366004611b46565b610e0b565b6040516101529190611bbe565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a47565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146104ac5760405162461bcd60e51b81526004016104a390611c08565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146105fc5760405162461bcd60e51b81526004016104a390611c08565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c7c565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614610a025760405162461bcd60e51b81526004016104a390611c08565b6000610a30610a1936869003860160408701611cf8565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611eb283398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611eb283398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611eb283398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2a565b6040516020818303038152906040528051906020012060001c610c419190611d6c565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cf8565b90611307565b610c7436899003890189611cf8565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cf8565b610cd6368a90038a0160808b01611dde565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611eb283398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e1d565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce2565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce2565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e5d565b81548110610f9a57610f9a611ce2565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e5d565b858581518110610fd557610fd5611ce2565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e70565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146110625760405162461bcd60e51b81526004016104a390611c08565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce2565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e5d565b8154811061121657611216611ce2565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e87565b905084826002811061154957611549611ce2565b6020020151518361155b836000611e9e565b600c811061156b5761156b611ce2565b602002015284826002811061158257611582611ce2565b602002015160200151838260016115999190611e9e565b600c81106115a9576115a9611ce2565b60200201528382600281106115c0576115c0611ce2565b60200201515151836115d3836002611e9e565b600c81106115e3576115e3611ce2565b60200201528382600281106115fa576115fa611ce2565b6020020151516001602002015183611613836003611e9e565b600c811061162357611623611ce2565b602002015283826002811061163a5761163a611ce2565b60200201516020015160006002811061165557611655611ce2565b602002015183611666836004611e9e565b600c811061167657611676611ce2565b602002015283826002811061168d5761168d611ce2565b6020020151602001516001600281106116a8576116a8611ce2565b6020020151836116b9836005611e9e565b600c81106116c9576116c9611ce2565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d6c565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e5d565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b915060208084013567ffffffffffffffff808211156119db57600080fd5b818601915086601f8301126119ef57600080fd5b813581811115611a0157611a01611931565b611a13601f8201601f19168501611970565b91508082528784828501011115611a2957600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a5957600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8a57600080fd5b611a9383611905565b946020939093013593505050565b600080600060608486031215611ab657600080fd5b611abf84611905565b9250602084013563ffffffff81168114611ad857600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0057600080fd5b611b09856118cc565b9350610100601f1982011215611b1e57600080fd5b602085019250604061011f1982011215611b3757600080fd5b50610120840190509250925092565b600080600060408486031215611b5b57600080fd5b833567ffffffffffffffff80821115611b7357600080fd5b818601915086601f830112611b8757600080fd5b813581811115611b9657600080fd5b876020828501011115611ba857600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611bfc57835163ffffffff1683529284019291840191600101611bda565b50909695505050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b03841681526000602084602084015260606040840152835180606085015260005b81811015611cbf57858101830151858201608001528201611ca3565b506000608082860101526080601f19601f83011685010192505050949350505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611d0a57600080fd5b611d12611947565b82358152602083013560208201528091505092915050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8957634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611d9f57600080fd5b611da7611947565b806040840185811115611db957600080fd5b845b81811015611dd3578035845260209384019301611dbb565b509095945050505050565b600060808284031215611df057600080fd5b611df8611947565b611e028484611d8e565b8152611e118460408501611d8e565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e47565b600081611e7f57611e7f611e47565b506000190190565b80820281158282048414176106ff576106ff611e47565b808201808211156106ff576106ff611e4756fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a264697066735822122032bb5054c7a2f6432e5be9a0f6a1c05e87838a89c3e8ae01d982bce76ffd2a6064736f6c63430008180033","nonce":44,"gas_used":1797106},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4bbc9e","logs":[{"address":"0x8f86403a4de0bb5791fa46b8e795c547942fe4cf","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000"},"block_hash":"0x0278ea2b38f9769073f11d2038144ac3be14552d0c813cc12085d466e172f5f3","block_number":6},{"info":{"transaction_hash":"0xbc7967bc81e805ffd19906d9334f5742363096234ea2cdd8177ee5fda857e708","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","traces":[{"parent":null,"children":[1,3,5],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6101806040523480156200001257600080fd5b506040516200582c3803806200582c833981016040819052620000359162000419565b6001600160a01b0380851660805280841660a05280831660c052811660e05281848482846200006362000341565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e7919062000481565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000140573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000166919062000481565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e8919062000481565b6001600160a01b0390811661016052851690506200023d57604051630b0f5aa160e11b815260206004820152600c60248201526b6176734469726563746f727960a01b60448201526064015b60405180910390fd5b6001600160a01b0383166200028b57604051630b0f5aa160e11b81526020600482015260126024820152713932bbb0b93239a1b7b7b93234b730ba37b960711b604482015260640162000234565b6001600160a01b038216620002e457604051630b0f5aa160e11b815260206004820152601360248201527f7265676973747279436f6f7264696e61746f7200000000000000000000000000604482015260640162000234565b6001600160a01b0381166200032d57604051630b0f5aa160e11b815260206004820152600d60248201526c7374616b65526567697374727960981b604482015260640162000234565b6200033762000341565b50505050620004a8565b600054610100900460ff1615620003ab5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840162000234565b60005460ff9081161015620003fe576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200041657600080fd5b50565b600080600080608085870312156200043057600080fd5b84516200043d8162000400565b6020860151909450620004508162000400565b6040860151909350620004638162000400565b6060860151909250620004768162000400565b939692955090935050565b6000602082840312156200049457600080fd5b8151620004a18162000400565b9392505050565b60805160a05160c05160e05161010051610120516101405161016051615276620005b66000396000818161065401526117dd01526000818161039701526119f00152600081816103cb01528181611bdd0152611dcd0152600081816104320152818161100f015281816114a30152818161164a0152611891015260008181610d4401528181610e9501528181610f2c01528181612b4b01528181612cc40152612d63015260008181610b6b01528181610bfa01528181610c7a015281816121660152818161223201528181612a860152612c1f01526000818161311a015281816131d601526132b90152600081816103fc015281816121ba0152818161228e015261230d01526152766000f3fe6080604052600436106101fd5760003560e01c806395c6d6041161010d578063d66eaabd116100a0578063f474b5201161006f578063f474b520146106ab578063f9120af6146106d8578063fa534dc0146106f8578063fc299dee14610718578063fce36c7d1461073857600080fd5b8063d66eaabd1461062f578063df5cf72314610642578063e481af9d14610676578063f2fde38b1461068b57600080fd5b8063ab21739a116100dc578063ab21739a1461056b578063b099627e1461058b578063b98d0908146105f5578063c0c53b8b1461060f57600080fd5b806395c6d604146104eb5780639926ee7d1461050b578063a364f4da1461052b578063a98fb3551461054b57600080fd5b80634ae07c37116101905780636d14a9871161015f5780636d14a9871461042057806370a0823114610454578063715018a614610498578063800fb61f146104ad5780638da5cb5b146104cd57600080fd5b80634ae07c37146103575780635df459461461038557806368304835146103b95780636b3aa72e146103ed57600080fd5b80633bc28c8c116101cc5780633bc28c8c146102cc578063416c7e5e146102ec5780634223d5511461030c5780634a5bf6321461031f57600080fd5b806306045a9114610213578063171f1d5b146102485780632e1a7d4d1461027f57806333cfb7b71461029f57600080fd5b3661020e5761020c3334610758565b005b600080fd5b34801561021f57600080fd5b5061023361022e366004614234565b6107ed565b60405190151581526020015b60405180910390f35b34801561025457600080fd5b50610268610263366004614386565b6108e4565b60408051921515835290151560208301520161023f565b34801561028b57600080fd5b5061020c61029a3660046143d7565b610a6e565b3480156102ab57600080fd5b506102bf6102ba3660046143f0565b610b46565b60405161023f919061440d565b3480156102d857600080fd5b5061020c6102e73660046143f0565b610ff9565b3480156102f857600080fd5b5061020c610307366004614468565b61100d565b61020c61031a3660046143f0565b611144565b34801561032b57600080fd5b5060cb5461033f906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b34801561036357600080fd5b50610377610372366004614743565b61114e565b60405161023f9291906147de565b34801561039157600080fd5b5061033f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c557600080fd5b5061033f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103f957600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061033f565b34801561042c57600080fd5b5061033f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561046057600080fd5b5061048a61046f3660046143f0565b6001600160a01b0316600090815260ca602052604090205490565b60405190815260200161023f565b3480156104a457600080fd5b5061020c612082565b3480156104b957600080fd5b5061020c6104c83660046143f0565b612096565b3480156104d957600080fd5b506033546001600160a01b031661033f565b3480156104f757600080fd5b5061023361050636600461486f565b612136565b34801561051757600080fd5b5061020c6105263660046148ba565b61215b565b34801561053757600080fd5b5061020c6105463660046143f0565b612227565b34801561055757600080fd5b5061020c610566366004614965565b6122ee565b34801561057757600080fd5b5061020c6105863660046149b5565b612342565b34801561059757600080fd5b506105d36105a63660046143d7565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff909416845291151560208401529082015260600161023f565b34801561060157600080fd5b506097546102339060ff1681565b34801561061b57600080fd5b5061020c61062a3660046149dc565b612701565b61020c61063d366004614a27565b6128c6565b34801561064e57600080fd5b5061033f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561068257600080fd5b506102bf612a80565b34801561069757600080fd5b5061020c6106a63660046143f0565b612e2c565b3480156106b757600080fd5b5061048a6106c63660046143f0565b60ca6020526000908152604090205481565b3480156106e457600080fd5b5061020c6106f33660046143f0565b612ea2565b34801561070457600080fd5b50610233610713366004614a79565b612ecc565b34801561072457600080fd5b5060655461033f906001600160a01b031681565b34801561074457600080fd5b5061020c610753366004614af6565b612f41565b8060000361078157604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca6020526040812080548392906107a9908490614b80565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a25050565b6000806001600160a01b038316610805575084610831565b8583604051602001610818929190614b93565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff1690036108565760009150506108d8565b600081815260c96020526040902054640100000000900460ff1661087e5760009150506108d8565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f19818403018152919052805160208201209091506108d2878983896132f0565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018787600001518860200151886000015160006002811061092c5761092c614bae565b60200201518951600160200201518a6020015160006002811061095157610951614bae565b60200201518b6020015160016002811061096d5761096d614bae565b602090810291909101518c518d8301516040516109ca9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6109ed9190614bc4565b9050610a60610a066109ff8884613308565b8690613399565b610a0e61342e565b610a56610a4785610a41604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613308565b610a508c6134ee565b90613399565b886201d4c061357d565b909890975095505050505050565b33600090815260ca6020526040902054811115610abf5733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018390526044820152606401610778565b33600090815260ca602052604081208054839290610ade908490614be6565b909155505033600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610b42573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd69190614bf9565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c659190614c12565b90506001600160c01b0381161580610cff57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190614c3b565b60ff16155b15610d1f5760408051600080825260208201909252905b50949350505050565b6000610d33826001600160c01b0316613797565b90506000805b8251811015610dff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610d8357610d83614bae565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610deb9190614bf9565b610df59083614b80565b9150600101610d39565b506000816001600160401b03811115610e1a57610e1a614110565b604051908082528060200260200182016040528015610e43578160200160208202803683370190505b5090506000805b8451811015610fec576000858281518110610e6757610e67614bae565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015610edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f009190614bf9565b905060005b81811015610fe1576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015610f7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9e9190614c73565b60000151868681518110610fb457610fb4614bae565b6001600160a01b039092166020928302919091019091015284610fd681614cb4565b955050600101610f05565b505050600101610e4a565b5090979650505050505050565b611001613859565b61100a816138b3565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108f9190614ccd565b6001600160a01b0316336001600160a01b03161461113b5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610778565b61100a8161391c565b61100a8134610758565b604080518082019091526060808252602082015260008260400151516040518060400160405280600181526020016000815250511480156111aa57508260a0015151604051806040016040528060018152602001600081525051145b80156111d157508260c0015151604051806040016040528060018152602001600081525051145b80156111f857508260e0015151604051806040016040528060018152602001600081525051145b6112625760405162461bcd60e51b8152602060048201526041602482015260008051602061522183398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610778565b825151602084015151146112da5760405162461bcd60e51b815260206004820152604460248201819052600080516020615221833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610778565b4363ffffffff168463ffffffff16106113495760405162461bcd60e51b815260206004820152603c602482015260008051602061522183398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610778565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561140a5761140a614110565b604051908082528060200260200182016040528015611433578160200160208202803683370190505b5081526020860151516001600160401b0381111561145357611453614110565b60405190808252806020026020018201604052801561147c578160200160208202803683370190505b508160200181905250600061152860405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115239190614c3b565b613963565b905060005b8760200151518110156117b9576115728860200151828151811061155357611553614bae565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061158857611588614bae565b602090810291909101015280156116485760208301516115a9600183614be6565b815181106115b9576115b9614bae565b602002602001015160001c836020015182815181106115da576115da614bae565b602002602001015160001c11611648576040805162461bcd60e51b815260206004820152602481019190915260008051602061522183398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610778565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec63518460200151838151811061168d5761168d614bae565b60200260200101518b8b6000015185815181106116ac576116ac614bae565b60200260200101516040518463ffffffff1660e01b81526004016116e99392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a9190614c12565b6001600160c01b03168360000151828151811061174957611749614bae565b6020026020010181815250506117af6109ff611783848660000151858151811061177557611775614bae565b6020026020010151166139f6565b8a60200151848151811061179957611799614bae565b6020026020010151613a2190919063ffffffff16565b945060010161152d565b50506117c483613b04565b60975490935060ff166000816117db57600061185d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185d9190614bf9565b905060005b604051806040016040528060018152602001600081525051811015611f535782156119ee578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c42604051806040016040528060018152602001600081525085815181106118e6576118e6614bae565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561192a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194e9190614bf9565b6119589190614b80565b116119ee5760405162461bcd60e51b8152602060048201526066602482015260008051602061522183398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610778565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611a4557611a45614bae565b602001015160f81c60f81b60f81c8c8c60a001518581518110611a6a57611a6a614bae565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aea9190614cea565b6001600160401b031916611b0d8a60400151838151811061155357611553614bae565b67ffffffffffffffff191614611ba95760405162461bcd60e51b8152602060048201526061602482015260008051602061522183398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610778565b611bd989604001518281518110611bc257611bc2614bae565b60200260200101518761339990919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611c3257611c32614bae565b602001015160f81c60f81b60f81c8c8c60c001518581518110611c5757611c57614bae565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd79190614d15565b85602001518281518110611ced57611ced614bae565b6001600160601b03909216602092830291909101820152850151805182908110611d1957611d19614bae565b602002602001015185600001518281518110611d3757611d37614bae565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611f4957611dc686600001518281518110611d8157611d81614bae565b602002602001015160405180604001604052806001815260200160008152508581518110611db157611db1614bae565b016020015160f81c60ff161c60019081161490565b15611f41577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611e2257611e22614bae565b602001015160f81c60f81b60f81c8e89602001518581518110611e4757611e47614bae565b60200260200101518f60e001518881518110611e6557611e65614bae565b60200260200101518781518110611e7e57611e7e614bae565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f069190614d15565b8751805185908110611f1a57611f1a614bae565b60200260200101818151611f2e9190614d32565b6001600160601b03169052506001909101905b600101611d5b565b5050600101611862565b505050600080611f6d8a868a606001518b608001516108e4565b9150915081611fde5760405162461bcd60e51b8152602060048201526043602482015260008051602061522183398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610778565b8061203f5760405162461bcd60e51b8152602060048201526039602482015260008051602061522183398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610778565b5050600087826020015160405160200161205a929190614d59565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b61208a613859565b6120946000613b9f565b565b600054600290610100900460ff161580156120b8575060005460ff8083169116105b6120d45760405162461bcd60e51b815260040161077890614da1565b6000805461ffff191660ff8316176101001790556120f182612ea2565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000818484604051612149929190614def565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146121a35760405162461bcd60e51b815260040161077890614dff565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906121f19085908590600401614ebd565b600060405180830381600087803b15801561220b57600080fd5b505af115801561221f573d6000803e3d6000fd5b505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461226f5760405162461bcd60e51b815260040161077890614dff565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b5050505050565b6122f6613859565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb355906122b9908490600401614f08565b60cb546001600160a01b031633146123825760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610778565b60005a90506000848460405160200161239c929190614b93565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff90911690036123f1576040516311cb69a760e11b815260048101839052602401610778565b8054640100000000900460ff161561241f57604051634e78d7f960e11b815260048101839052602401610778565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca602052604090205410156124a25760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610778565b80546000906124b990849063ffffffff168761114e565b509050604360ff1681602001516000815181106124d8576124d8614bae565b60200260200101516124ea9190614f1b565b6001600160601b03166064826000015160008151811061250c5761250c614bae565b60200260200101516001600160601b03166125279190614f3e565b10156125ba576064816000015160008151811061254657612546614bae565b60200260200101516001600160601b03166125619190614f3e565b604360ff16826020015160008151811061257d5761257d614bae565b602002602001015161258f9190614f1b565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610778565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a6126069087614be6565b6126139062011170614b80565b61261d9190614f3e565b9050826001015481111561265457600183015460405163437e283f60e11b8152600481019190915260248101829052604401610778565b6001600160a01b038716600090815260ca60205260408120805483929061267c908490614be6565b90915550506001600160a01b038716600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156126f6573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff16158080156127215750600054600160ff909116105b8061273b5750303b15801561273b575060005460ff166001145b6127575760405162461bcd60e51b815260040161077890614da1565b6000805460ff19166001179055801561277a576000805461ff0019166101001790555b6001600160a01b0384166127c057604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610778565b6001600160a01b03831661280a57604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610778565b6001600160a01b03821661285557604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610778565b61285f8484613bf1565b60cb80546001600160a01b0319166001600160a01b03841617905580156128c0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600084336040516020016128db929190614b93565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff161561292a57604051630c40bc4360e21b815260048101829052602401610778565b34156129875733600090815260ca60205260408120805434929061294f908490614b80565b909155505033600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a25b33600090815260ca60205260409020548211156129d85733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610778565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612a70913391908a908a908a90614f55565b60405180910390a2505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b069190614c3b565b60ff16905080600003612b2757505060408051600081526020810190915290565b6000805b82811015612bd257604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbe9190614bf9565b612bc89083614b80565b9150600101612b2b565b506000816001600160401b03811115612bed57612bed614110565b604051908082528060200260200182016040528015612c16578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f9190614c3b565b60ff16811015612e2257604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d379190614bf9565b905060005b81811015612e18576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd59190614c73565b60000151858581518110612deb57612deb614bae565b6001600160a01b039092166020928302919091019091015283612e0d81614cb4565b945050600101612d3c565b5050600101612c1d565b5090949350505050565b612e34613859565b6001600160a01b038116612e995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610778565b61100a81613b9f565b612eaa613859565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190612f00908b908b908b908b908b908b908b908b90600401614fac565b602060405180830381865afa158015612f1d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d8919061500e565b6065546001600160a01b03163314612fd65760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610778565b60005b818110156132a157828282818110612ff357612ff3614bae565b9050602002810190613005919061502b565b6130169060408101906020016143f0565b6001600160a01b03166323b872dd333086868681811061303857613038614bae565b905060200281019061304a919061502b565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156130a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c5919061500e565b5060008383838181106130da576130da614bae565b90506020028101906130ec919061502b565b6130fd9060408101906020016143f0565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561316b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318f9190614bf9565b90508383838181106131a3576131a3614bae565b90506020028101906131b5919061502b565b6131c69060408101906020016143f0565b6001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000008387878781811061320857613208614bae565b905060200281019061321a919061502b565b604001356132289190614b80565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613273573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613297919061500e565b5050600101612fd9565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906121f190859085906004016150b1565b6000836132fe868585613c6e565b1495945050505050565b604080518082019091526000808252602082015261332461401e565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061335357fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610778565b505092915050565b60408051808201909152600080825260208201526133b561403c565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806133f057fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610778565b61343661405a565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201909152600080825260208201526000808061351e6000805160206151e183398151915286614bc4565b90505b61352a81613d6b565b90935091506000805160206151e18339815191528283098303613563576040805180820190915290815260208101919091529392505050565b6000805160206151e1833981519152600182089050613521565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906135af61407f565b60005b600281101561376a5760006135c8826006614f3e565b90508482600281106135dc576135dc614bae565b602002015151836135ee836000614b80565b600c81106135fe576135fe614bae565b602002015284826002811061361557613615614bae565b6020020151602001518382600161362c9190614b80565b600c811061363c5761363c614bae565b602002015283826002811061365357613653614bae565b6020020151515183613666836002614b80565b600c811061367657613676614bae565b602002015283826002811061368d5761368d614bae565b60200201515160016020020151836136a6836003614b80565b600c81106136b6576136b6614bae565b60200201528382600281106136cd576136cd614bae565b6020020151602001516000600281106136e8576136e8614bae565b6020020151836136f9836004614b80565b600c811061370957613709614bae565b602002015283826002811061372057613720614bae565b60200201516020015160016002811061373b5761373b614bae565b60200201518361374c836005614b80565b600c811061375c5761375c614bae565b6020020152506001016135b2565b5061377361409e565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b60606000806137a5846139f6565b61ffff166001600160401b038111156137c0576137c0614110565b6040519080825280601f01601f1916602001820160405280156137ea576020820181803683370190505b5090506000805b825182108015613802575061010081105b15612e22576001811b935085841615613849578060f81b83838151811061382b5761382b614bae565b60200101906001600160f81b031916908160001a9053508160010191505b61385281614cb4565b90506137f1565b6033546001600160a01b031633146120945760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610778565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061396f84613ded565b9050808360ff166001901b116139ed5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610778565b90505b92915050565b6000805b82156139f057613a0b600184614be6565b9092169180613a19816151bf565b9150506139fa565b60408051808201909152600080825260208201526102008261ffff1610613a7d5760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610778565b8161ffff16600103613a905750816139f0565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613af957600161ffff871660ff83161c81169003613adc57613ad98484613399565b93505b613ae68384613399565b92506201fffe600192831b169101613aac565b509195945050505050565b60408051808201909152600080825260208201528151158015613b2957506020820151155b15613b47575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206151e18339815191528460200151613b7a9190614bc4565b613b92906000805160206151e1833981519152614be6565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613c5c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610778565b613c6582613b9f565b610b42816138b3565b600060208451613c7e9190614bc4565b15613d055760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610778565b8260205b85518111610d1657613d1c600285614bc4565b600003613d4057816000528086015160205260406000209150600284049350613d59565b8086015160005281602052604060002091506002840493505b613d64602082614b80565b9050613d09565b600080806000805160206151e183398151915260036000805160206151e1833981519152866000805160206151e1833981519152888909090890506000613de1827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206151e1833981519152613f75565b91959194509092505050565b600061010082511115613e765760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610778565b8151600003613e8757506000919050565b60008083600081518110613e9d57613e9d614bae565b0160200151600160f89190911c81901b92505b8451811015613f6c57848181518110613ecb57613ecb614bae565b0160200151600160f89190911c1b9150828211613f605760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610778565b91811791600101613eb0565b50909392505050565b600080613f8061409e565b613f886140bc565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fc557fe5b50826140135760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610778565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061406d6140da565b815260200161407a6140da565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613b9a57600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561414857614148614110565b60405290565b60405161010081016001600160401b038111828210171561414857614148614110565b604051601f8201601f191681016001600160401b038111828210171561419957614199614110565b604052919050565b60006001600160401b038311156141ba576141ba614110565b6141cd601f8401601f1916602001614171565b90508281528383830111156141e157600080fd5b828260208301376000602084830101529392505050565b600082601f83011261420957600080fd5b614218838335602085016141a1565b9392505050565b6001600160a01b038116811461100a57600080fd5b600080600080600080600080610100898b03121561425157600080fd5b88359750602089013596506040890135955061426f60608a016140f8565b94506080890135935060a08901356001600160401b0381111561429157600080fd5b61429d8b828c016141f8565b93505060c0890135915060e08901356142b58161421f565b809150509295985092959890939650565b6000604082840312156142d857600080fd5b6142e0614126565b9050813581526020820135602082015292915050565b600082601f83011261430757600080fd5b61430f614126565b80604084018581111561432157600080fd5b845b8181101561433b578035845260209384019301614323565b509095945050505050565b60006080828403121561435857600080fd5b614360614126565b905061436c83836142f6565b815261437b83604084016142f6565b602082015292915050565b600080600080610120858703121561439d57600080fd5b843593506143ae86602087016142c6565b92506143bd8660608701614346565b91506143cc8660e087016142c6565b905092959194509250565b6000602082840312156143e957600080fd5b5035919050565b60006020828403121561440257600080fd5b81356139ed8161421f565b6020808252825182820181905260009190848201906040850190845b8181101561444e5783516001600160a01b031683529284019291840191600101614429565b50909695505050505050565b801515811461100a57600080fd5b60006020828403121561447a57600080fd5b81356139ed8161445a565b803563ffffffff81168114613b9a57600080fd5b60006001600160401b038211156144b2576144b2614110565b5060051b60200190565b600082601f8301126144cd57600080fd5b813560206144e26144dd83614499565b614171565b8083825260208201915060208460051b87010193508684111561450457600080fd5b602086015b848110156145275761451a81614485565b8352918301918301614509565b509695505050505050565b600082601f83011261454357600080fd5b813560206145536144dd83614499565b8083825260208201915060208460061b87010193508684111561457557600080fd5b602086015b848110156145275761458c88826142c6565b83529183019160400161457a565b600082601f8301126145ab57600080fd5b813560206145bb6144dd83614499565b82815260059290921b840181019181810190868411156145da57600080fd5b8286015b848110156145275780356001600160401b038111156145fd5760008081fd5b61460b8986838b01016144bc565b8452509183019183016145de565b6000610180828403121561462c57600080fd5b61463461414e565b905081356001600160401b038082111561464d57600080fd5b614659858386016144bc565b8352602084013591508082111561466f57600080fd5b61467b85838601614532565b6020840152604084013591508082111561469457600080fd5b6146a085838601614532565b60408401526146b28560608601614346565b60608401526146c48560e086016142c6565b60808401526101208401359150808211156146de57600080fd5b6146ea858386016144bc565b60a084015261014084013591508082111561470457600080fd5b614710858386016144bc565b60c084015261016084013591508082111561472a57600080fd5b506147378482850161459a565b60e08301525092915050565b60008060006060848603121561475857600080fd5b8335925061476860208501614485565b915060408401356001600160401b0381111561478357600080fd5b61478f86828701614619565b9150509250925092565b60008151808452602080850194506020840160005b838110156147d35781516001600160601b0316875295820195908201906001016147ae565b509495945050505050565b60408152600083516040808401526147f96080840182614799565b90506020850151603f198483030160608501526148168282614799565b925050508260208301529392505050565b60008083601f84011261483957600080fd5b5081356001600160401b0381111561485057600080fd5b60208301915083602082850101111561486857600080fd5b9250929050565b60008060006040848603121561488457600080fd5b83356001600160401b0381111561489a57600080fd5b6148a686828701614827565b909790965060209590950135949350505050565b600080604083850312156148cd57600080fd5b82356148d88161421f565b915060208301356001600160401b03808211156148f457600080fd5b908401906060828703121561490857600080fd5b60405160608101818110838211171561492357614923614110565b60405282358281111561493557600080fd5b614941888286016141f8565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561497757600080fd5b81356001600160401b0381111561498d57600080fd5b8201601f8101841361499e57600080fd5b6149ad848235602084016141a1565b949350505050565b6000806000606084860312156149ca57600080fd5b8335925060208401356147688161421f565b6000806000606084860312156149f157600080fd5b83356149fc8161421f565b92506020840135614a0c8161421f565b91506040840135614a1c8161421f565b809150509250925092565b60008060008060608587031215614a3d57600080fd5b8435935060208501356001600160401b03811115614a5a57600080fd5b614a6687828801614827565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614a9457600080fd5b873596506020880135955060408801359450614ab2606089016140f8565b93506080880135925060a08801356001600160401b03811115614ad457600080fd5b614ae08a828b016141f8565b92505060c0880135905092959891949750929550565b60008060208385031215614b0957600080fd5b82356001600160401b0380821115614b2057600080fd5b818501915085601f830112614b3457600080fd5b813581811115614b4357600080fd5b8660208260051b8501011115614b5857600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156139f0576139f0614b6a565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614be157634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156139f0576139f0614b6a565b600060208284031215614c0b57600080fd5b5051919050565b600060208284031215614c2457600080fd5b81516001600160c01b03811681146139ed57600080fd5b600060208284031215614c4d57600080fd5b815160ff811681146139ed57600080fd5b6001600160601b038116811461100a57600080fd5b600060408284031215614c8557600080fd5b614c8d614126565b8251614c988161421f565b81526020830151614ca881614c5e565b60208201529392505050565b600060018201614cc657614cc6614b6a565b5060010190565b600060208284031215614cdf57600080fd5b81516139ed8161421f565b600060208284031215614cfc57600080fd5b815167ffffffffffffffff19811681146139ed57600080fd5b600060208284031215614d2757600080fd5b81516139ed81614c5e565b6001600160601b03828116828216039080821115614d5257614d52614b6a565b5092915050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b83811015614d9457815185529382019390820190600101614d78565b5092979650505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015614e9d57602081850181015186830182015201614e81565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b0383168152604060208201526000825160606040840152614ee760a0840182614e77565b90506020840151606084015260408401516080840152809150509392505050565b6020815260006142186020830184614e77565b6001600160601b0381811683821602808216919082811461339157613391614b6a565b80820281158282048414176139f0576139f0614b6a565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b60006101008a83528960208401528860408401526001600160601b0319881660608401528660808401528060a0840152614fe881840187614e77565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b60006020828403121561502057600080fd5b81516139ed8161445a565b60008235609e1983360301811261504157600080fd5b9190910192915050565b8035613b9a8161421f565b8183526000602080850194508260005b858110156147d35781356150798161421f565b6001600160a01b031687528183013561509181614c5e565b6001600160601b0316878401526040968701969190910190600101615066565b60208082528181018390526000906040808401600586901b8501820187855b888110156151b157878303603f190184528135368b9003609e190181126150f657600080fd5b8a0160a0813536839003601e1901811261510f57600080fd5b820188810190356001600160401b0381111561512a57600080fd5b8060061b360382131561513c57600080fd5b82875261514c8388018284615056565b9250505061515b88830161504b565b6001600160a01b0316888601528187013587860152606061517d818401614485565b63ffffffff16908601526080615194838201614485565b63ffffffff169501949094525092850192908501906001016150d0565b509098975050505050505050565b600061ffff8083168181036151d6576151d6614b6a565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a264697066735822122033c0c7e49fb5de5099ecf188c45e1a03d3d3ee543f278b51e29defde53c95db164736f6c634300081800330000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","output":"0x6080604052600436106101fd5760003560e01c806395c6d6041161010d578063d66eaabd116100a0578063f474b5201161006f578063f474b520146106ab578063f9120af6146106d8578063fa534dc0146106f8578063fc299dee14610718578063fce36c7d1461073857600080fd5b8063d66eaabd1461062f578063df5cf72314610642578063e481af9d14610676578063f2fde38b1461068b57600080fd5b8063ab21739a116100dc578063ab21739a1461056b578063b099627e1461058b578063b98d0908146105f5578063c0c53b8b1461060f57600080fd5b806395c6d604146104eb5780639926ee7d1461050b578063a364f4da1461052b578063a98fb3551461054b57600080fd5b80634ae07c37116101905780636d14a9871161015f5780636d14a9871461042057806370a0823114610454578063715018a614610498578063800fb61f146104ad5780638da5cb5b146104cd57600080fd5b80634ae07c37146103575780635df459461461038557806368304835146103b95780636b3aa72e146103ed57600080fd5b80633bc28c8c116101cc5780633bc28c8c146102cc578063416c7e5e146102ec5780634223d5511461030c5780634a5bf6321461031f57600080fd5b806306045a9114610213578063171f1d5b146102485780632e1a7d4d1461027f57806333cfb7b71461029f57600080fd5b3661020e5761020c3334610758565b005b600080fd5b34801561021f57600080fd5b5061023361022e366004614234565b6107ed565b60405190151581526020015b60405180910390f35b34801561025457600080fd5b50610268610263366004614386565b6108e4565b60408051921515835290151560208301520161023f565b34801561028b57600080fd5b5061020c61029a3660046143d7565b610a6e565b3480156102ab57600080fd5b506102bf6102ba3660046143f0565b610b46565b60405161023f919061440d565b3480156102d857600080fd5b5061020c6102e73660046143f0565b610ff9565b3480156102f857600080fd5b5061020c610307366004614468565b61100d565b61020c61031a3660046143f0565b611144565b34801561032b57600080fd5b5060cb5461033f906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b34801561036357600080fd5b50610377610372366004614743565b61114e565b60405161023f9291906147de565b34801561039157600080fd5b5061033f7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b3480156103c557600080fd5b5061033f7f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b3480156103f957600080fd5b507f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f87570761033f565b34801561042c57600080fd5b5061033f7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b34801561046057600080fd5b5061048a61046f3660046143f0565b6001600160a01b0316600090815260ca602052604090205490565b60405190815260200161023f565b3480156104a457600080fd5b5061020c612082565b3480156104b957600080fd5b5061020c6104c83660046143f0565b612096565b3480156104d957600080fd5b506033546001600160a01b031661033f565b3480156104f757600080fd5b5061023361050636600461486f565b612136565b34801561051757600080fd5b5061020c6105263660046148ba565b61215b565b34801561053757600080fd5b5061020c6105463660046143f0565b612227565b34801561055757600080fd5b5061020c610566366004614965565b6122ee565b34801561057757600080fd5b5061020c6105863660046149b5565b612342565b34801561059757600080fd5b506105d36105a63660046143d7565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff909416845291151560208401529082015260600161023f565b34801561060157600080fd5b506097546102339060ff1681565b34801561061b57600080fd5b5061020c61062a3660046149dc565b612701565b61020c61063d366004614a27565b6128c6565b34801561064e57600080fd5b5061033f7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561068257600080fd5b506102bf612a80565b34801561069757600080fd5b5061020c6106a63660046143f0565b612e2c565b3480156106b757600080fd5b5061048a6106c63660046143f0565b60ca6020526000908152604090205481565b3480156106e457600080fd5b5061020c6106f33660046143f0565b612ea2565b34801561070457600080fd5b50610233610713366004614a79565b612ecc565b34801561072457600080fd5b5060655461033f906001600160a01b031681565b34801561074457600080fd5b5061020c610753366004614af6565b612f41565b8060000361078157604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca6020526040812080548392906107a9908490614b80565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a25050565b6000806001600160a01b038316610805575084610831565b8583604051602001610818929190614b93565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff1690036108565760009150506108d8565b600081815260c96020526040902054640100000000900460ff1661087e5760009150506108d8565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f19818403018152919052805160208201209091506108d2878983896132f0565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018787600001518860200151886000015160006002811061092c5761092c614bae565b60200201518951600160200201518a6020015160006002811061095157610951614bae565b60200201518b6020015160016002811061096d5761096d614bae565b602090810291909101518c518d8301516040516109ca9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6109ed9190614bc4565b9050610a60610a066109ff8884613308565b8690613399565b610a0e61342e565b610a56610a4785610a41604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613308565b610a508c6134ee565b90613399565b886201d4c061357d565b909890975095505050505050565b33600090815260ca6020526040902054811115610abf5733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018390526044820152606401610778565b33600090815260ca602052604081208054839290610ade908490614be6565b909155505033600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610b42573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16906313542a4e90602401602060405180830381865afa158015610bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd69190614bf9565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c169063871ef04990602401602060405180830381865afa158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c659190614c12565b90506001600160c01b0381161580610cff57507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190614c3b565b60ff16155b15610d1f5760408051600080825260208201909252905b50949350505050565b6000610d33826001600160c01b0316613797565b90506000805b8251811015610dff577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b0316633ca5a5f5848381518110610d8357610d83614bae565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610deb9190614bf9565b610df59083614b80565b9150600101610d39565b506000816001600160401b03811115610e1a57610e1a614110565b604051908082528060200260200182016040528015610e43578160200160208202803683370190505b5090506000805b8451811015610fec576000858281518110610e6757610e67614bae565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137781690633ca5a5f590602401602060405180830381865afa158015610edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f009190614bf9565b905060005b81811015610fe1576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa158015610f7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9e9190614c73565b60000151868681518110610fb457610fb4614bae565b6001600160a01b039092166020928302919091019091015284610fd681614cb4565b955050600101610f05565b505050600101610e4a565b5090979650505050505050565b611001613859565b61100a816138b3565b50565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108f9190614ccd565b6001600160a01b0316336001600160a01b03161461113b5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610778565b61100a8161391c565b61100a8134610758565b604080518082019091526060808252602082015260008260400151516040518060400160405280600181526020016000815250511480156111aa57508260a0015151604051806040016040528060018152602001600081525051145b80156111d157508260c0015151604051806040016040528060018152602001600081525051145b80156111f857508260e0015151604051806040016040528060018152602001600081525051145b6112625760405162461bcd60e51b8152602060048201526041602482015260008051602061522183398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610778565b825151602084015151146112da5760405162461bcd60e51b815260206004820152604460248201819052600080516020615221833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610778565b4363ffffffff168463ffffffff16106113495760405162461bcd60e51b815260206004820152603c602482015260008051602061522183398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610778565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561140a5761140a614110565b604051908082528060200260200182016040528015611433578160200160208202803683370190505b5081526020860151516001600160401b0381111561145357611453614110565b60405190808252806020026020018201604052801561147c578160200160208202803683370190505b508160200181905250600061152860405180604001604052806001815260200160008152507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115239190614c3b565b613963565b905060005b8760200151518110156117b9576115728860200151828151811061155357611553614bae565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061158857611588614bae565b602090810291909101015280156116485760208301516115a9600183614be6565b815181106115b9576115b9614bae565b602002602001015160001c836020015182815181106115da576115da614bae565b602002602001015160001c11611648576040805162461bcd60e51b815260206004820152602481019190915260008051602061522183398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610778565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b03166304ec63518460200151838151811061168d5761168d614bae565b60200260200101518b8b6000015185815181106116ac576116ac614bae565b60200260200101516040518463ffffffff1660e01b81526004016116e99392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a9190614c12565b6001600160c01b03168360000151828151811061174957611749614bae565b6020026020010181815250506117af6109ff611783848660000151858151811061177557611775614bae565b6020026020010151166139f6565b8a60200151848151811061179957611799614bae565b6020026020010151613a2190919063ffffffff16565b945060010161152d565b50506117c483613b04565b60975490935060ff166000816117db57600061185d565b7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc96001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185d9190614bf9565b905060005b604051806040016040528060018152602001600081525051811015611f535782156119ee578963ffffffff16827f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b031663249a0c42604051806040016040528060018152602001600081525085815181106118e6576118e6614bae565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561192a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194e9190614bf9565b6119589190614b80565b116119ee5760405162461bcd60e51b8152602060048201526066602482015260008051602061522183398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610778565b7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611a4557611a45614bae565b602001015160f81c60f81b60f81c8c8c60a001518581518110611a6a57611a6a614bae565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aea9190614cea565b6001600160401b031916611b0d8a60400151838151811061155357611553614bae565b67ffffffffffffffff191614611ba95760405162461bcd60e51b8152602060048201526061602482015260008051602061522183398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610778565b611bd989604001518281518110611bc257611bc2614bae565b60200260200101518761339990919063ffffffff16565b95507f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611c3257611c32614bae565b602001015160f81c60f81b60f81c8c8c60c001518581518110611c5757611c57614bae565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd79190614d15565b85602001518281518110611ced57611ced614bae565b6001600160601b03909216602092830291909101820152850151805182908110611d1957611d19614bae565b602002602001015185600001518281518110611d3757611d37614bae565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611f4957611dc686600001518281518110611d8157611d81614bae565b602002602001015160405180604001604052806001815260200160008152508581518110611db157611db1614bae565b016020015160f81c60ff161c60019081161490565b15611f41577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611e2257611e22614bae565b602001015160f81c60f81b60f81c8e89602001518581518110611e4757611e47614bae565b60200260200101518f60e001518881518110611e6557611e65614bae565b60200260200101518781518110611e7e57611e7e614bae565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f069190614d15565b8751805185908110611f1a57611f1a614bae565b60200260200101818151611f2e9190614d32565b6001600160601b03169052506001909101905b600101611d5b565b5050600101611862565b505050600080611f6d8a868a606001518b608001516108e4565b9150915081611fde5760405162461bcd60e51b8152602060048201526043602482015260008051602061522183398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610778565b8061203f5760405162461bcd60e51b8152602060048201526039602482015260008051602061522183398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610778565b5050600087826020015160405160200161205a929190614d59565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b61208a613859565b6120946000613b9f565b565b600054600290610100900460ff161580156120b8575060005460ff8083169116105b6120d45760405162461bcd60e51b815260040161077890614da1565b6000805461ffff191660ff8316176101001790556120f182612ea2565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000818484604051612149929190614def565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146121a35760405162461bcd60e51b815260040161077890614dff565b604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757071690639926ee7d906121f19085908590600401614ebd565b600060405180830381600087803b15801561220b57600080fd5b505af115801561221f573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461226f5760405162461bcd60e51b815260040161077890614dff565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a364f4da906024015b600060405180830381600087803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b5050505050565b6122f6613859565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a98fb355906122b9908490600401614f08565b60cb546001600160a01b031633146123825760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610778565b60005a90506000848460405160200161239c929190614b93565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff90911690036123f1576040516311cb69a760e11b815260048101839052602401610778565b8054640100000000900460ff161561241f57604051634e78d7f960e11b815260048101839052602401610778565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca602052604090205410156124a25760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610778565b80546000906124b990849063ffffffff168761114e565b509050604360ff1681602001516000815181106124d8576124d8614bae565b60200260200101516124ea9190614f1b565b6001600160601b03166064826000015160008151811061250c5761250c614bae565b60200260200101516001600160601b03166125279190614f3e565b10156125ba576064816000015160008151811061254657612546614bae565b60200260200101516001600160601b03166125619190614f3e565b604360ff16826020015160008151811061257d5761257d614bae565b602002602001015161258f9190614f1b565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610778565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a6126069087614be6565b6126139062011170614b80565b61261d9190614f3e565b9050826001015481111561265457600183015460405163437e283f60e11b8152600481019190915260248101829052604401610778565b6001600160a01b038716600090815260ca60205260408120805483929061267c908490614be6565b90915550506001600160a01b038716600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156126f6573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff16158080156127215750600054600160ff909116105b8061273b5750303b15801561273b575060005460ff166001145b6127575760405162461bcd60e51b815260040161077890614da1565b6000805460ff19166001179055801561277a576000805461ff0019166101001790555b6001600160a01b0384166127c057604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610778565b6001600160a01b03831661280a57604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610778565b6001600160a01b03821661285557604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610778565b61285f8484613bf1565b60cb80546001600160a01b0319166001600160a01b03841617905580156128c0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600084336040516020016128db929190614b93565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff161561292a57604051630c40bc4360e21b815260048101829052602401610778565b34156129875733600090815260ca60205260408120805434929061294f908490614b80565b909155505033600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a25b33600090815260ca60205260409020548211156129d85733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610778565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612a70913391908a908a908a90614f55565b60405180910390a2505050505050565b606060007f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b069190614c3b565b60ff16905080600003612b2757505060408051600081526020810190915290565b6000805b82811015612bd257604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbe9190614bf9565b612bc89083614b80565b9150600101612b2b565b506000816001600160401b03811115612bed57612bed614110565b604051908082528060200260200182016040528015612c16578160200160208202803683370190505b5090506000805b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f9190614c3b565b60ff16811015612e2257604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d379190614bf9565b905060005b81811015612e18576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa158015612db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd59190614c73565b60000151858581518110612deb57612deb614bae565b6001600160a01b039092166020928302919091019091015283612e0d81614cb4565b945050600101612d3c565b5050600101612c1d565b5090949350505050565b612e34613859565b6001600160a01b038116612e995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610778565b61100a81613b9f565b612eaa613859565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190612f00908b908b908b908b908b908b908b908b90600401614fac565b602060405180830381865afa158015612f1d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d8919061500e565b6065546001600160a01b03163314612fd65760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610778565b60005b818110156132a157828282818110612ff357612ff3614bae565b9050602002810190613005919061502b565b6130169060408101906020016143f0565b6001600160a01b03166323b872dd333086868681811061303857613038614bae565b905060200281019061304a919061502b565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156130a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c5919061500e565b5060008383838181106130da576130da614bae565b90506020028101906130ec919061502b565b6130fd9060408101906020016143f0565b604051636eb1769f60e11b81523060048201526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f81166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561316b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318f9190614bf9565b90508383838181106131a3576131a3614bae565b90506020028101906131b5919061502b565b6131c69060408101906020016143f0565b6001600160a01b031663095ea7b37f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f8387878781811061320857613208614bae565b905060200281019061321a919061502b565b604001356132289190614b80565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613273573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613297919061500e565b5050600101612fd9565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f169063fce36c7d906121f190859085906004016150b1565b6000836132fe868585613c6e565b1495945050505050565b604080518082019091526000808252602082015261332461401e565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061335357fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610778565b505092915050565b60408051808201909152600080825260208201526133b561403c565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806133f057fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610778565b61343661405a565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201909152600080825260208201526000808061351e6000805160206151e183398151915286614bc4565b90505b61352a81613d6b565b90935091506000805160206151e18339815191528283098303613563576040805180820190915290815260208101919091529392505050565b6000805160206151e1833981519152600182089050613521565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906135af61407f565b60005b600281101561376a5760006135c8826006614f3e565b90508482600281106135dc576135dc614bae565b602002015151836135ee836000614b80565b600c81106135fe576135fe614bae565b602002015284826002811061361557613615614bae565b6020020151602001518382600161362c9190614b80565b600c811061363c5761363c614bae565b602002015283826002811061365357613653614bae565b6020020151515183613666836002614b80565b600c811061367657613676614bae565b602002015283826002811061368d5761368d614bae565b60200201515160016020020151836136a6836003614b80565b600c81106136b6576136b6614bae565b60200201528382600281106136cd576136cd614bae565b6020020151602001516000600281106136e8576136e8614bae565b6020020151836136f9836004614b80565b600c811061370957613709614bae565b602002015283826002811061372057613720614bae565b60200201516020015160016002811061373b5761373b614bae565b60200201518361374c836005614b80565b600c811061375c5761375c614bae565b6020020152506001016135b2565b5061377361409e565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b60606000806137a5846139f6565b61ffff166001600160401b038111156137c0576137c0614110565b6040519080825280601f01601f1916602001820160405280156137ea576020820181803683370190505b5090506000805b825182108015613802575061010081105b15612e22576001811b935085841615613849578060f81b83838151811061382b5761382b614bae565b60200101906001600160f81b031916908160001a9053508160010191505b61385281614cb4565b90506137f1565b6033546001600160a01b031633146120945760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610778565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061396f84613ded565b9050808360ff166001901b116139ed5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610778565b90505b92915050565b6000805b82156139f057613a0b600184614be6565b9092169180613a19816151bf565b9150506139fa565b60408051808201909152600080825260208201526102008261ffff1610613a7d5760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610778565b8161ffff16600103613a905750816139f0565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613af957600161ffff871660ff83161c81169003613adc57613ad98484613399565b93505b613ae68384613399565b92506201fffe600192831b169101613aac565b509195945050505050565b60408051808201909152600080825260208201528151158015613b2957506020820151155b15613b47575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206151e18339815191528460200151613b7a9190614bc4565b613b92906000805160206151e1833981519152614be6565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613c5c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610778565b613c6582613b9f565b610b42816138b3565b600060208451613c7e9190614bc4565b15613d055760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610778565b8260205b85518111610d1657613d1c600285614bc4565b600003613d4057816000528086015160205260406000209150600284049350613d59565b8086015160005281602052604060002091506002840493505b613d64602082614b80565b9050613d09565b600080806000805160206151e183398151915260036000805160206151e1833981519152866000805160206151e1833981519152888909090890506000613de1827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206151e1833981519152613f75565b91959194509092505050565b600061010082511115613e765760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610778565b8151600003613e8757506000919050565b60008083600081518110613e9d57613e9d614bae565b0160200151600160f89190911c81901b92505b8451811015613f6c57848181518110613ecb57613ecb614bae565b0160200151600160f89190911c1b9150828211613f605760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610778565b91811791600101613eb0565b50909392505050565b600080613f8061409e565b613f886140bc565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fc557fe5b50826140135760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610778565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061406d6140da565b815260200161407a6140da565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613b9a57600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561414857614148614110565b60405290565b60405161010081016001600160401b038111828210171561414857614148614110565b604051601f8201601f191681016001600160401b038111828210171561419957614199614110565b604052919050565b60006001600160401b038311156141ba576141ba614110565b6141cd601f8401601f1916602001614171565b90508281528383830111156141e157600080fd5b828260208301376000602084830101529392505050565b600082601f83011261420957600080fd5b614218838335602085016141a1565b9392505050565b6001600160a01b038116811461100a57600080fd5b600080600080600080600080610100898b03121561425157600080fd5b88359750602089013596506040890135955061426f60608a016140f8565b94506080890135935060a08901356001600160401b0381111561429157600080fd5b61429d8b828c016141f8565b93505060c0890135915060e08901356142b58161421f565b809150509295985092959890939650565b6000604082840312156142d857600080fd5b6142e0614126565b9050813581526020820135602082015292915050565b600082601f83011261430757600080fd5b61430f614126565b80604084018581111561432157600080fd5b845b8181101561433b578035845260209384019301614323565b509095945050505050565b60006080828403121561435857600080fd5b614360614126565b905061436c83836142f6565b815261437b83604084016142f6565b602082015292915050565b600080600080610120858703121561439d57600080fd5b843593506143ae86602087016142c6565b92506143bd8660608701614346565b91506143cc8660e087016142c6565b905092959194509250565b6000602082840312156143e957600080fd5b5035919050565b60006020828403121561440257600080fd5b81356139ed8161421f565b6020808252825182820181905260009190848201906040850190845b8181101561444e5783516001600160a01b031683529284019291840191600101614429565b50909695505050505050565b801515811461100a57600080fd5b60006020828403121561447a57600080fd5b81356139ed8161445a565b803563ffffffff81168114613b9a57600080fd5b60006001600160401b038211156144b2576144b2614110565b5060051b60200190565b600082601f8301126144cd57600080fd5b813560206144e26144dd83614499565b614171565b8083825260208201915060208460051b87010193508684111561450457600080fd5b602086015b848110156145275761451a81614485565b8352918301918301614509565b509695505050505050565b600082601f83011261454357600080fd5b813560206145536144dd83614499565b8083825260208201915060208460061b87010193508684111561457557600080fd5b602086015b848110156145275761458c88826142c6565b83529183019160400161457a565b600082601f8301126145ab57600080fd5b813560206145bb6144dd83614499565b82815260059290921b840181019181810190868411156145da57600080fd5b8286015b848110156145275780356001600160401b038111156145fd5760008081fd5b61460b8986838b01016144bc565b8452509183019183016145de565b6000610180828403121561462c57600080fd5b61463461414e565b905081356001600160401b038082111561464d57600080fd5b614659858386016144bc565b8352602084013591508082111561466f57600080fd5b61467b85838601614532565b6020840152604084013591508082111561469457600080fd5b6146a085838601614532565b60408401526146b28560608601614346565b60608401526146c48560e086016142c6565b60808401526101208401359150808211156146de57600080fd5b6146ea858386016144bc565b60a084015261014084013591508082111561470457600080fd5b614710858386016144bc565b60c084015261016084013591508082111561472a57600080fd5b506147378482850161459a565b60e08301525092915050565b60008060006060848603121561475857600080fd5b8335925061476860208501614485565b915060408401356001600160401b0381111561478357600080fd5b61478f86828701614619565b9150509250925092565b60008151808452602080850194506020840160005b838110156147d35781516001600160601b0316875295820195908201906001016147ae565b509495945050505050565b60408152600083516040808401526147f96080840182614799565b90506020850151603f198483030160608501526148168282614799565b925050508260208301529392505050565b60008083601f84011261483957600080fd5b5081356001600160401b0381111561485057600080fd5b60208301915083602082850101111561486857600080fd5b9250929050565b60008060006040848603121561488457600080fd5b83356001600160401b0381111561489a57600080fd5b6148a686828701614827565b909790965060209590950135949350505050565b600080604083850312156148cd57600080fd5b82356148d88161421f565b915060208301356001600160401b03808211156148f457600080fd5b908401906060828703121561490857600080fd5b60405160608101818110838211171561492357614923614110565b60405282358281111561493557600080fd5b614941888286016141f8565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561497757600080fd5b81356001600160401b0381111561498d57600080fd5b8201601f8101841361499e57600080fd5b6149ad848235602084016141a1565b949350505050565b6000806000606084860312156149ca57600080fd5b8335925060208401356147688161421f565b6000806000606084860312156149f157600080fd5b83356149fc8161421f565b92506020840135614a0c8161421f565b91506040840135614a1c8161421f565b809150509250925092565b60008060008060608587031215614a3d57600080fd5b8435935060208501356001600160401b03811115614a5a57600080fd5b614a6687828801614827565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614a9457600080fd5b873596506020880135955060408801359450614ab2606089016140f8565b93506080880135925060a08801356001600160401b03811115614ad457600080fd5b614ae08a828b016141f8565b92505060c0880135905092959891949750929550565b60008060208385031215614b0957600080fd5b82356001600160401b0380821115614b2057600080fd5b818501915085601f830112614b3457600080fd5b813581811115614b4357600080fd5b8660208260051b8501011115614b5857600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156139f0576139f0614b6a565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614be157634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156139f0576139f0614b6a565b600060208284031215614c0b57600080fd5b5051919050565b600060208284031215614c2457600080fd5b81516001600160c01b03811681146139ed57600080fd5b600060208284031215614c4d57600080fd5b815160ff811681146139ed57600080fd5b6001600160601b038116811461100a57600080fd5b600060408284031215614c8557600080fd5b614c8d614126565b8251614c988161421f565b81526020830151614ca881614c5e565b60208201529392505050565b600060018201614cc657614cc6614b6a565b5060010190565b600060208284031215614cdf57600080fd5b81516139ed8161421f565b600060208284031215614cfc57600080fd5b815167ffffffffffffffff19811681146139ed57600080fd5b600060208284031215614d2757600080fd5b81516139ed81614c5e565b6001600160601b03828116828216039080821115614d5257614d52614b6a565b5092915050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b83811015614d9457815185529382019390820190600101614d78565b5092979650505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015614e9d57602081850181015186830182015201614e81565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b0383168152604060208201526000825160606040840152614ee760a0840182614e77565b90506020840151606084015260408401516080840152809150509392505050565b6020815260006142186020830184614e77565b6001600160601b0381811683821602808216919082811461339157613391614b6a565b80820281158282048414176139f0576139f0614b6a565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b60006101008a83528960208401528860408401526001600160601b0319881660608401528660808401528060a0840152614fe881840187614e77565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b60006020828403121561502057600080fd5b81516139ed8161445a565b60008235609e1983360301811261504157600080fd5b9190910192915050565b8035613b9a8161421f565b8183526000602080850194508260005b858110156147d35781356150798161421f565b6001600160a01b031687528183013561509181614c5e565b6001600160601b0316878401526040968701969190910190600101615066565b60208082528181018390526000906040808401600586901b8501820187855b888110156151b157878303603f190184528135368b9003609e190181126150f657600080fd5b8a0160a0813536839003601e1901811261510f57600080fd5b820188810190356001600160401b0381111561512a57600080fd5b8060061b360382131561513c57600080fd5b82875261514c8388018284615056565b9250505061515b88830161504b565b6001600160a01b0316888601528187013587860152606061517d818401614485565b63ffffffff16908601526080615194838201614485565b63ffffffff169501949094525092850192908501906001016150d0565b509098975050505050505050565b600061ffff8083168181036151d6576151d6614b6a565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a264697066735822122033c0c7e49fb5de5099ecf188c45e1a03d3d3ee543f278b51e29defde53c95db164736f6c63430008180033","gas_used":4274700,"gas_limit":5674556,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0},{"Call":1},{"Call":2}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x809d550fca64d94bd9f66e60752a544199cfac3d","address":"0x851356ae760d987e095750cceb3bc6014560891c","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0x68304835","output":"0x00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","gas_used":7645,"gas_limit":5559418,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x68304835","output":"0x00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","gas_used":350,"gas_limit":5465412,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]},{"parent":0,"children":[4],"idx":3,"trace":{"depth":1,"success":true,"caller":"0x809d550fca64d94bd9f66e60752a544199cfac3d","address":"0x851356ae760d987e095750cceb3bc6014560891c","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0x5df45946","output":"0x000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e","gas_used":1101,"gas_limit":5551426,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":3,"children":[],"idx":4,"trace":{"depth":2,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x5df45946","output":"0x000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e","gas_used":306,"gas_limit":5463943,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]},{"parent":0,"children":[6],"idx":5,"trace":{"depth":1,"success":true,"caller":"0x809d550fca64d94bd9f66e60752a544199cfac3d","address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0xdf5cf723","output":"0x000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","gas_used":7622,"gas_limit":5547411,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":5,"children":[],"idx":6,"trace":{"depth":2,"success":true,"caller":"0x95401dc811bb5740090279ba06cfa8fcf6113778","address":"0x99bba657f2bbc93c02d617f8ba121cb8fc104acf","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xdf5cf723","output":"0x000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","gas_used":327,"gas_limit":5453593,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x6080604052600436106101fd5760003560e01c806395c6d6041161010d578063d66eaabd116100a0578063f474b5201161006f578063f474b520146106ab578063f9120af6146106d8578063fa534dc0146106f8578063fc299dee14610718578063fce36c7d1461073857600080fd5b8063d66eaabd1461062f578063df5cf72314610642578063e481af9d14610676578063f2fde38b1461068b57600080fd5b8063ab21739a116100dc578063ab21739a1461056b578063b099627e1461058b578063b98d0908146105f5578063c0c53b8b1461060f57600080fd5b806395c6d604146104eb5780639926ee7d1461050b578063a364f4da1461052b578063a98fb3551461054b57600080fd5b80634ae07c37116101905780636d14a9871161015f5780636d14a9871461042057806370a0823114610454578063715018a614610498578063800fb61f146104ad5780638da5cb5b146104cd57600080fd5b80634ae07c37146103575780635df459461461038557806368304835146103b95780636b3aa72e146103ed57600080fd5b80633bc28c8c116101cc5780633bc28c8c146102cc578063416c7e5e146102ec5780634223d5511461030c5780634a5bf6321461031f57600080fd5b806306045a9114610213578063171f1d5b146102485780632e1a7d4d1461027f57806333cfb7b71461029f57600080fd5b3661020e5761020c3334610758565b005b600080fd5b34801561021f57600080fd5b5061023361022e366004614234565b6107ed565b60405190151581526020015b60405180910390f35b34801561025457600080fd5b50610268610263366004614386565b6108e4565b60408051921515835290151560208301520161023f565b34801561028b57600080fd5b5061020c61029a3660046143d7565b610a6e565b3480156102ab57600080fd5b506102bf6102ba3660046143f0565b610b46565b60405161023f919061440d565b3480156102d857600080fd5b5061020c6102e73660046143f0565b610ff9565b3480156102f857600080fd5b5061020c610307366004614468565b61100d565b61020c61031a3660046143f0565b611144565b34801561032b57600080fd5b5060cb5461033f906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b34801561036357600080fd5b50610377610372366004614743565b61114e565b60405161023f9291906147de565b34801561039157600080fd5b5061033f7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b3480156103c557600080fd5b5061033f7f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b3480156103f957600080fd5b507f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f87570761033f565b34801561042c57600080fd5b5061033f7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b34801561046057600080fd5b5061048a61046f3660046143f0565b6001600160a01b0316600090815260ca602052604090205490565b60405190815260200161023f565b3480156104a457600080fd5b5061020c612082565b3480156104b957600080fd5b5061020c6104c83660046143f0565b612096565b3480156104d957600080fd5b506033546001600160a01b031661033f565b3480156104f757600080fd5b5061023361050636600461486f565b612136565b34801561051757600080fd5b5061020c6105263660046148ba565b61215b565b34801561053757600080fd5b5061020c6105463660046143f0565b612227565b34801561055757600080fd5b5061020c610566366004614965565b6122ee565b34801561057757600080fd5b5061020c6105863660046149b5565b612342565b34801561059757600080fd5b506105d36105a63660046143d7565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff909416845291151560208401529082015260600161023f565b34801561060157600080fd5b506097546102339060ff1681565b34801561061b57600080fd5b5061020c61062a3660046149dc565b612701565b61020c61063d366004614a27565b6128c6565b34801561064e57600080fd5b5061033f7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561068257600080fd5b506102bf612a80565b34801561069757600080fd5b5061020c6106a63660046143f0565b612e2c565b3480156106b757600080fd5b5061048a6106c63660046143f0565b60ca6020526000908152604090205481565b3480156106e457600080fd5b5061020c6106f33660046143f0565b612ea2565b34801561070457600080fd5b50610233610713366004614a79565b612ecc565b34801561072457600080fd5b5060655461033f906001600160a01b031681565b34801561074457600080fd5b5061020c610753366004614af6565b612f41565b8060000361078157604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca6020526040812080548392906107a9908490614b80565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a25050565b6000806001600160a01b038316610805575084610831565b8583604051602001610818929190614b93565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff1690036108565760009150506108d8565b600081815260c96020526040902054640100000000900460ff1661087e5760009150506108d8565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f19818403018152919052805160208201209091506108d2878983896132f0565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018787600001518860200151886000015160006002811061092c5761092c614bae565b60200201518951600160200201518a6020015160006002811061095157610951614bae565b60200201518b6020015160016002811061096d5761096d614bae565b602090810291909101518c518d8301516040516109ca9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6109ed9190614bc4565b9050610a60610a066109ff8884613308565b8690613399565b610a0e61342e565b610a56610a4785610a41604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613308565b610a508c6134ee565b90613399565b886201d4c061357d565b909890975095505050505050565b33600090815260ca6020526040902054811115610abf5733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018390526044820152606401610778565b33600090815260ca602052604081208054839290610ade908490614be6565b909155505033600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610b42573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16906313542a4e90602401602060405180830381865afa158015610bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd69190614bf9565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c169063871ef04990602401602060405180830381865afa158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c659190614c12565b90506001600160c01b0381161580610cff57507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190614c3b565b60ff16155b15610d1f5760408051600080825260208201909252905b50949350505050565b6000610d33826001600160c01b0316613797565b90506000805b8251811015610dff577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b0316633ca5a5f5848381518110610d8357610d83614bae565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610deb9190614bf9565b610df59083614b80565b9150600101610d39565b506000816001600160401b03811115610e1a57610e1a614110565b604051908082528060200260200182016040528015610e43578160200160208202803683370190505b5090506000805b8451811015610fec576000858281518110610e6757610e67614bae565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137781690633ca5a5f590602401602060405180830381865afa158015610edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f009190614bf9565b905060005b81811015610fe1576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa158015610f7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9e9190614c73565b60000151868681518110610fb457610fb4614bae565b6001600160a01b039092166020928302919091019091015284610fd681614cb4565b955050600101610f05565b505050600101610e4a565b5090979650505050505050565b611001613859565b61100a816138b3565b50565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108f9190614ccd565b6001600160a01b0316336001600160a01b03161461113b5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610778565b61100a8161391c565b61100a8134610758565b604080518082019091526060808252602082015260008260400151516040518060400160405280600181526020016000815250511480156111aa57508260a0015151604051806040016040528060018152602001600081525051145b80156111d157508260c0015151604051806040016040528060018152602001600081525051145b80156111f857508260e0015151604051806040016040528060018152602001600081525051145b6112625760405162461bcd60e51b8152602060048201526041602482015260008051602061522183398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610778565b825151602084015151146112da5760405162461bcd60e51b815260206004820152604460248201819052600080516020615221833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610778565b4363ffffffff168463ffffffff16106113495760405162461bcd60e51b815260206004820152603c602482015260008051602061522183398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610778565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561140a5761140a614110565b604051908082528060200260200182016040528015611433578160200160208202803683370190505b5081526020860151516001600160401b0381111561145357611453614110565b60405190808252806020026020018201604052801561147c578160200160208202803683370190505b508160200181905250600061152860405180604001604052806001815260200160008152507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115239190614c3b565b613963565b905060005b8760200151518110156117b9576115728860200151828151811061155357611553614bae565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061158857611588614bae565b602090810291909101015280156116485760208301516115a9600183614be6565b815181106115b9576115b9614bae565b602002602001015160001c836020015182815181106115da576115da614bae565b602002602001015160001c11611648576040805162461bcd60e51b815260206004820152602481019190915260008051602061522183398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610778565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b03166304ec63518460200151838151811061168d5761168d614bae565b60200260200101518b8b6000015185815181106116ac576116ac614bae565b60200260200101516040518463ffffffff1660e01b81526004016116e99392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a9190614c12565b6001600160c01b03168360000151828151811061174957611749614bae565b6020026020010181815250506117af6109ff611783848660000151858151811061177557611775614bae565b6020026020010151166139f6565b8a60200151848151811061179957611799614bae565b6020026020010151613a2190919063ffffffff16565b945060010161152d565b50506117c483613b04565b60975490935060ff166000816117db57600061185d565b7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc96001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185d9190614bf9565b905060005b604051806040016040528060018152602001600081525051811015611f535782156119ee578963ffffffff16827f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b031663249a0c42604051806040016040528060018152602001600081525085815181106118e6576118e6614bae565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561192a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194e9190614bf9565b6119589190614b80565b116119ee5760405162461bcd60e51b8152602060048201526066602482015260008051602061522183398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610778565b7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611a4557611a45614bae565b602001015160f81c60f81b60f81c8c8c60a001518581518110611a6a57611a6a614bae565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aea9190614cea565b6001600160401b031916611b0d8a60400151838151811061155357611553614bae565b67ffffffffffffffff191614611ba95760405162461bcd60e51b8152602060048201526061602482015260008051602061522183398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610778565b611bd989604001518281518110611bc257611bc2614bae565b60200260200101518761339990919063ffffffff16565b95507f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611c3257611c32614bae565b602001015160f81c60f81b60f81c8c8c60c001518581518110611c5757611c57614bae565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd79190614d15565b85602001518281518110611ced57611ced614bae565b6001600160601b03909216602092830291909101820152850151805182908110611d1957611d19614bae565b602002602001015185600001518281518110611d3757611d37614bae565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611f4957611dc686600001518281518110611d8157611d81614bae565b602002602001015160405180604001604052806001815260200160008152508581518110611db157611db1614bae565b016020015160f81c60ff161c60019081161490565b15611f41577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611e2257611e22614bae565b602001015160f81c60f81b60f81c8e89602001518581518110611e4757611e47614bae565b60200260200101518f60e001518881518110611e6557611e65614bae565b60200260200101518781518110611e7e57611e7e614bae565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f069190614d15565b8751805185908110611f1a57611f1a614bae565b60200260200101818151611f2e9190614d32565b6001600160601b03169052506001909101905b600101611d5b565b5050600101611862565b505050600080611f6d8a868a606001518b608001516108e4565b9150915081611fde5760405162461bcd60e51b8152602060048201526043602482015260008051602061522183398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610778565b8061203f5760405162461bcd60e51b8152602060048201526039602482015260008051602061522183398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610778565b5050600087826020015160405160200161205a929190614d59565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b61208a613859565b6120946000613b9f565b565b600054600290610100900460ff161580156120b8575060005460ff8083169116105b6120d45760405162461bcd60e51b815260040161077890614da1565b6000805461ffff191660ff8316176101001790556120f182612ea2565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000818484604051612149929190614def565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146121a35760405162461bcd60e51b815260040161077890614dff565b604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757071690639926ee7d906121f19085908590600401614ebd565b600060405180830381600087803b15801561220b57600080fd5b505af115801561221f573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461226f5760405162461bcd60e51b815260040161077890614dff565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a364f4da906024015b600060405180830381600087803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b5050505050565b6122f6613859565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a98fb355906122b9908490600401614f08565b60cb546001600160a01b031633146123825760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610778565b60005a90506000848460405160200161239c929190614b93565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff90911690036123f1576040516311cb69a760e11b815260048101839052602401610778565b8054640100000000900460ff161561241f57604051634e78d7f960e11b815260048101839052602401610778565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca602052604090205410156124a25760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610778565b80546000906124b990849063ffffffff168761114e565b509050604360ff1681602001516000815181106124d8576124d8614bae565b60200260200101516124ea9190614f1b565b6001600160601b03166064826000015160008151811061250c5761250c614bae565b60200260200101516001600160601b03166125279190614f3e565b10156125ba576064816000015160008151811061254657612546614bae565b60200260200101516001600160601b03166125619190614f3e565b604360ff16826020015160008151811061257d5761257d614bae565b602002602001015161258f9190614f1b565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610778565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a6126069087614be6565b6126139062011170614b80565b61261d9190614f3e565b9050826001015481111561265457600183015460405163437e283f60e11b8152600481019190915260248101829052604401610778565b6001600160a01b038716600090815260ca60205260408120805483929061267c908490614be6565b90915550506001600160a01b038716600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156126f6573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff16158080156127215750600054600160ff909116105b8061273b5750303b15801561273b575060005460ff166001145b6127575760405162461bcd60e51b815260040161077890614da1565b6000805460ff19166001179055801561277a576000805461ff0019166101001790555b6001600160a01b0384166127c057604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610778565b6001600160a01b03831661280a57604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610778565b6001600160a01b03821661285557604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610778565b61285f8484613bf1565b60cb80546001600160a01b0319166001600160a01b03841617905580156128c0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600084336040516020016128db929190614b93565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff161561292a57604051630c40bc4360e21b815260048101829052602401610778565b34156129875733600090815260ca60205260408120805434929061294f908490614b80565b909155505033600081815260ca6020908152604091829020549151918252600080516020615201833981519152910160405180910390a25b33600090815260ca60205260409020548211156129d85733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610778565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612a70913391908a908a908a90614f55565b60405180910390a2505050505050565b606060007f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b069190614c3b565b60ff16905080600003612b2757505060408051600081526020810190915290565b6000805b82811015612bd257604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbe9190614bf9565b612bc89083614b80565b9150600101612b2b565b506000816001600160401b03811115612bed57612bed614110565b604051908082528060200260200182016040528015612c16578160200160208202803683370190505b5090506000805b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f9190614c3b565b60ff16811015612e2257604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d379190614bf9565b905060005b81811015612e18576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa158015612db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd59190614c73565b60000151858581518110612deb57612deb614bae565b6001600160a01b039092166020928302919091019091015283612e0d81614cb4565b945050600101612d3c565b5050600101612c1d565b5090949350505050565b612e34613859565b6001600160a01b038116612e995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610778565b61100a81613b9f565b612eaa613859565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190612f00908b908b908b908b908b908b908b908b90600401614fac565b602060405180830381865afa158015612f1d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d8919061500e565b6065546001600160a01b03163314612fd65760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610778565b60005b818110156132a157828282818110612ff357612ff3614bae565b9050602002810190613005919061502b565b6130169060408101906020016143f0565b6001600160a01b03166323b872dd333086868681811061303857613038614bae565b905060200281019061304a919061502b565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156130a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c5919061500e565b5060008383838181106130da576130da614bae565b90506020028101906130ec919061502b565b6130fd9060408101906020016143f0565b604051636eb1769f60e11b81523060048201526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f81166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561316b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318f9190614bf9565b90508383838181106131a3576131a3614bae565b90506020028101906131b5919061502b565b6131c69060408101906020016143f0565b6001600160a01b031663095ea7b37f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f8387878781811061320857613208614bae565b905060200281019061321a919061502b565b604001356132289190614b80565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613273573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613297919061500e565b5050600101612fd9565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f169063fce36c7d906121f190859085906004016150b1565b6000836132fe868585613c6e565b1495945050505050565b604080518082019091526000808252602082015261332461401e565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061335357fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610778565b505092915050565b60408051808201909152600080825260208201526133b561403c565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806133f057fe5b50806133915760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610778565b61343661405a565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201909152600080825260208201526000808061351e6000805160206151e183398151915286614bc4565b90505b61352a81613d6b565b90935091506000805160206151e18339815191528283098303613563576040805180820190915290815260208101919091529392505050565b6000805160206151e1833981519152600182089050613521565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906135af61407f565b60005b600281101561376a5760006135c8826006614f3e565b90508482600281106135dc576135dc614bae565b602002015151836135ee836000614b80565b600c81106135fe576135fe614bae565b602002015284826002811061361557613615614bae565b6020020151602001518382600161362c9190614b80565b600c811061363c5761363c614bae565b602002015283826002811061365357613653614bae565b6020020151515183613666836002614b80565b600c811061367657613676614bae565b602002015283826002811061368d5761368d614bae565b60200201515160016020020151836136a6836003614b80565b600c81106136b6576136b6614bae565b60200201528382600281106136cd576136cd614bae565b6020020151602001516000600281106136e8576136e8614bae565b6020020151836136f9836004614b80565b600c811061370957613709614bae565b602002015283826002811061372057613720614bae565b60200201516020015160016002811061373b5761373b614bae565b60200201518361374c836005614b80565b600c811061375c5761375c614bae565b6020020152506001016135b2565b5061377361409e565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b60606000806137a5846139f6565b61ffff166001600160401b038111156137c0576137c0614110565b6040519080825280601f01601f1916602001820160405280156137ea576020820181803683370190505b5090506000805b825182108015613802575061010081105b15612e22576001811b935085841615613849578060f81b83838151811061382b5761382b614bae565b60200101906001600160f81b031916908160001a9053508160010191505b61385281614cb4565b90506137f1565b6033546001600160a01b031633146120945760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610778565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061396f84613ded565b9050808360ff166001901b116139ed5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610778565b90505b92915050565b6000805b82156139f057613a0b600184614be6565b9092169180613a19816151bf565b9150506139fa565b60408051808201909152600080825260208201526102008261ffff1610613a7d5760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610778565b8161ffff16600103613a905750816139f0565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613af957600161ffff871660ff83161c81169003613adc57613ad98484613399565b93505b613ae68384613399565b92506201fffe600192831b169101613aac565b509195945050505050565b60408051808201909152600080825260208201528151158015613b2957506020820151155b15613b47575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206151e18339815191528460200151613b7a9190614bc4565b613b92906000805160206151e1833981519152614be6565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613c5c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610778565b613c6582613b9f565b610b42816138b3565b600060208451613c7e9190614bc4565b15613d055760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610778565b8260205b85518111610d1657613d1c600285614bc4565b600003613d4057816000528086015160205260406000209150600284049350613d59565b8086015160005281602052604060002091506002840493505b613d64602082614b80565b9050613d09565b600080806000805160206151e183398151915260036000805160206151e1833981519152866000805160206151e1833981519152888909090890506000613de1827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206151e1833981519152613f75565b91959194509092505050565b600061010082511115613e765760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610778565b8151600003613e8757506000919050565b60008083600081518110613e9d57613e9d614bae565b0160200151600160f89190911c81901b92505b8451811015613f6c57848181518110613ecb57613ecb614bae565b0160200151600160f89190911c1b9150828211613f605760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610778565b91811791600101613eb0565b50909392505050565b600080613f8061409e565b613f886140bc565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fc557fe5b50826140135760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610778565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061406d6140da565b815260200161407a6140da565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613b9a57600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561414857614148614110565b60405290565b60405161010081016001600160401b038111828210171561414857614148614110565b604051601f8201601f191681016001600160401b038111828210171561419957614199614110565b604052919050565b60006001600160401b038311156141ba576141ba614110565b6141cd601f8401601f1916602001614171565b90508281528383830111156141e157600080fd5b828260208301376000602084830101529392505050565b600082601f83011261420957600080fd5b614218838335602085016141a1565b9392505050565b6001600160a01b038116811461100a57600080fd5b600080600080600080600080610100898b03121561425157600080fd5b88359750602089013596506040890135955061426f60608a016140f8565b94506080890135935060a08901356001600160401b0381111561429157600080fd5b61429d8b828c016141f8565b93505060c0890135915060e08901356142b58161421f565b809150509295985092959890939650565b6000604082840312156142d857600080fd5b6142e0614126565b9050813581526020820135602082015292915050565b600082601f83011261430757600080fd5b61430f614126565b80604084018581111561432157600080fd5b845b8181101561433b578035845260209384019301614323565b509095945050505050565b60006080828403121561435857600080fd5b614360614126565b905061436c83836142f6565b815261437b83604084016142f6565b602082015292915050565b600080600080610120858703121561439d57600080fd5b843593506143ae86602087016142c6565b92506143bd8660608701614346565b91506143cc8660e087016142c6565b905092959194509250565b6000602082840312156143e957600080fd5b5035919050565b60006020828403121561440257600080fd5b81356139ed8161421f565b6020808252825182820181905260009190848201906040850190845b8181101561444e5783516001600160a01b031683529284019291840191600101614429565b50909695505050505050565b801515811461100a57600080fd5b60006020828403121561447a57600080fd5b81356139ed8161445a565b803563ffffffff81168114613b9a57600080fd5b60006001600160401b038211156144b2576144b2614110565b5060051b60200190565b600082601f8301126144cd57600080fd5b813560206144e26144dd83614499565b614171565b8083825260208201915060208460051b87010193508684111561450457600080fd5b602086015b848110156145275761451a81614485565b8352918301918301614509565b509695505050505050565b600082601f83011261454357600080fd5b813560206145536144dd83614499565b8083825260208201915060208460061b87010193508684111561457557600080fd5b602086015b848110156145275761458c88826142c6565b83529183019160400161457a565b600082601f8301126145ab57600080fd5b813560206145bb6144dd83614499565b82815260059290921b840181019181810190868411156145da57600080fd5b8286015b848110156145275780356001600160401b038111156145fd5760008081fd5b61460b8986838b01016144bc565b8452509183019183016145de565b6000610180828403121561462c57600080fd5b61463461414e565b905081356001600160401b038082111561464d57600080fd5b614659858386016144bc565b8352602084013591508082111561466f57600080fd5b61467b85838601614532565b6020840152604084013591508082111561469457600080fd5b6146a085838601614532565b60408401526146b28560608601614346565b60608401526146c48560e086016142c6565b60808401526101208401359150808211156146de57600080fd5b6146ea858386016144bc565b60a084015261014084013591508082111561470457600080fd5b614710858386016144bc565b60c084015261016084013591508082111561472a57600080fd5b506147378482850161459a565b60e08301525092915050565b60008060006060848603121561475857600080fd5b8335925061476860208501614485565b915060408401356001600160401b0381111561478357600080fd5b61478f86828701614619565b9150509250925092565b60008151808452602080850194506020840160005b838110156147d35781516001600160601b0316875295820195908201906001016147ae565b509495945050505050565b60408152600083516040808401526147f96080840182614799565b90506020850151603f198483030160608501526148168282614799565b925050508260208301529392505050565b60008083601f84011261483957600080fd5b5081356001600160401b0381111561485057600080fd5b60208301915083602082850101111561486857600080fd5b9250929050565b60008060006040848603121561488457600080fd5b83356001600160401b0381111561489a57600080fd5b6148a686828701614827565b909790965060209590950135949350505050565b600080604083850312156148cd57600080fd5b82356148d88161421f565b915060208301356001600160401b03808211156148f457600080fd5b908401906060828703121561490857600080fd5b60405160608101818110838211171561492357614923614110565b60405282358281111561493557600080fd5b614941888286016141f8565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561497757600080fd5b81356001600160401b0381111561498d57600080fd5b8201601f8101841361499e57600080fd5b6149ad848235602084016141a1565b949350505050565b6000806000606084860312156149ca57600080fd5b8335925060208401356147688161421f565b6000806000606084860312156149f157600080fd5b83356149fc8161421f565b92506020840135614a0c8161421f565b91506040840135614a1c8161421f565b809150509250925092565b60008060008060608587031215614a3d57600080fd5b8435935060208501356001600160401b03811115614a5a57600080fd5b614a6687828801614827565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614a9457600080fd5b873596506020880135955060408801359450614ab2606089016140f8565b93506080880135925060a08801356001600160401b03811115614ad457600080fd5b614ae08a828b016141f8565b92505060c0880135905092959891949750929550565b60008060208385031215614b0957600080fd5b82356001600160401b0380821115614b2057600080fd5b818501915085601f830112614b3457600080fd5b813581811115614b4357600080fd5b8660208260051b8501011115614b5857600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156139f0576139f0614b6a565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614be157634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156139f0576139f0614b6a565b600060208284031215614c0b57600080fd5b5051919050565b600060208284031215614c2457600080fd5b81516001600160c01b03811681146139ed57600080fd5b600060208284031215614c4d57600080fd5b815160ff811681146139ed57600080fd5b6001600160601b038116811461100a57600080fd5b600060408284031215614c8557600080fd5b614c8d614126565b8251614c988161421f565b81526020830151614ca881614c5e565b60208201529392505050565b600060018201614cc657614cc6614b6a565b5060010190565b600060208284031215614cdf57600080fd5b81516139ed8161421f565b600060208284031215614cfc57600080fd5b815167ffffffffffffffff19811681146139ed57600080fd5b600060208284031215614d2757600080fd5b81516139ed81614c5e565b6001600160601b03828116828216039080821115614d5257614d52614b6a565b5092915050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b83811015614d9457815185529382019390820190600101614d78565b5092979650505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015614e9d57602081850181015186830182015201614e81565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b0383168152604060208201526000825160606040840152614ee760a0840182614e77565b90506020840151606084015260408401516080840152809150509392505050565b6020815260006142186020830184614e77565b6001600160601b0381811683821602808216919082811461339157613391614b6a565b80820281158282048414176139f0576139f0614b6a565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b60006101008a83528960208401528860408401526001600160601b0319881660608401528660808401528060a0840152614fe881840187614e77565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b60006020828403121561502057600080fd5b81516139ed8161445a565b60008235609e1983360301811261504157600080fd5b9190910192915050565b8035613b9a8161421f565b8183526000602080850194508260005b858110156147d35781356150798161421f565b6001600160a01b031687528183013561509181614c5e565b6001600160601b0316878401526040968701969190910190600101615066565b60208082528181018390526000906040808401600586901b8501820187855b888110156151b157878303603f190184528135368b9003609e190181126150f657600080fd5b8a0160a0813536839003601e1901811261510f57600080fd5b820188810190356001600160401b0381111561512a57600080fd5b8060061b360382131561513c57600080fd5b82875261514c8388018284615056565b9250505061515b88830161504b565b6001600160a01b0316888601528187013587860152606061517d818401614485565b63ffffffff16908601526080615194838201614485565b63ffffffff169501949094525092850192908501906001016150d0565b509098975050505050505050565b600061ffff8083168181036151d6576151d6614b6a565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a264697066735822122033c0c7e49fb5de5099ecf188c45e1a03d3d3ee543f278b51e29defde53c95db164736f6c63430008180033","nonce":48,"gas_used":4672340},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x474b54","logs":[{"address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xfd88461004175c7f26b13da9021a7bad73662b8e53f8ff5d43d61cbbe580d878","block_number":8},{"info":{"transaction_hash":"0x8f14b9796b5fdc7f61b3d1da93ce68ad4120b4b9f67658e90957430462d0864f","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xb7278a61aa25c888815afc32ad3cc52ff24fe575","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xb7278a61aa25c888815afc32ad3cc52ff24fe575","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b50611dbf806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114a7565b60405180910390f35b6100a361009e3660046114e3565b610245565b6040516100879190611641565b6100c36100be3660046116be565b6106c5565b604051610087919061170d565b6100e36100de3660046117a5565b6107d2565b604051610087919061189e565b6101036100fe366004611959565b610eea565b60405161008791906119bc565b61012361011e3660046119f4565b6110a8565b604051610087929190611a2b565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a4c565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a62565b82828151811061022b5761022b611a4c565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a7b565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a7b565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a7b565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a4c565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611a98565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a4c565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a4c565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a7b565b6001600160a01b031681526020018383815181106105b6576105b6611a4c565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a4c565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b28565b6001600160601b031681525085858151811061068257610682611a4c565b6020026020010151828151811061069b5761069b611a4c565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a4c565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a7b565b8282815181106107b2576107b2611a4c565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a7b565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b51565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611b98565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c4f565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611b98565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a4c565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a4c565b905060200201358e88600001518681518110610a9257610a92611a4c565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c78565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a4c565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a4c565b905060200201358d8d8860ff16818110610c2d57610c2d611a4c565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611ca1565b85606001518560ff1681518110610cc057610cc0611a4c565b60200260200101518481518110610cd957610cd9611a4c565b63ffffffff9092166020928302919091019091015282610cf881611cd4565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a4c565b60200260200101518181518110610d8957610d89611a4c565b6020026020010151828281518110610da357610da3611a4c565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a4c565b602002602001018190525050508080610df390611ced565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a7b565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d0c565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611b98565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d36565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611b98565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a4c565b602002602001015187868581518110610ff257610ff2611a4c565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c78565b6001600160c01b031682828151811061108b5761108b611a4c565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a4c565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d36565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611b98565b60008151811061117657611176611a4c565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c78565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a4c565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611cd4565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d55565b909216918061132981611d68565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b91506020838101356001600160401b038111156113f257600080fd5b8401601f8101861361140357600080fd5b803561141661141182611395565b611365565b81815260059190911b8201830190838101908883111561143557600080fd5b928401925b8284101561145c57833561144d81611337565b8252928401929084019061143a565b80955050505050509250929050565b60008151808452602080850194506020840160005b8381101561149c57815187529582019590820190600101611480565b509495945050505050565b6020815260006114ba602083018461146b565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114de816114c1565b919050565b6000806000606084860312156114f857600080fd5b833561150381611337565b92506020848101356001600160401b038082111561152057600080fd5b818701915087601f83011261153457600080fd5b8135818111156115465761154661134f565b611558601f8201601f19168501611365565b9150808252888482850101111561156e57600080fd5b8084840185840137600084828401015250809450505050611591604085016114d3565b90509250925092565b600082825180855260208086019550808260051b8401018186016000805b8581101561163357868403601f19018a52825180518086529086019086860190845b8181101561161e57835180516001600160a01b03168452898101518a8501526040908101516001600160601b031690840152928801926060909201916001016115da565b50509a86019a945050918401916001016115b8565b509198975050505050505050565b6020815260006114ba602083018461159a565b600082601f83011261166557600080fd5b8135602061167561141183611395565b8083825260208201915060208460051b87010193508684111561169757600080fd5b602086015b848110156116b3578035835291830191830161169c565b509695505050505050565b600080604083850312156116d157600080fd5b82356116dc81611337565b915060208301356001600160401b038111156116f757600080fd5b61170385828601611654565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561174e5783516001600160a01b031683529284019291840191600101611729565b50909695505050505050565b60008083601f84011261176c57600080fd5b5081356001600160401b0381111561178357600080fd5b6020830191508360208260051b850101111561179e57600080fd5b9250929050565b600080600080600080608087890312156117be57600080fd5b86356117c981611337565b955060208701356117d9816114c1565b945060408701356001600160401b03808211156117f557600080fd5b818901915089601f83011261180957600080fd5b81358181111561181857600080fd5b8a602082850101111561182a57600080fd5b60208301965080955050606089013591508082111561184857600080fd5b5061185589828a0161175a565b979a9699509497509295939492505050565b60008151808452602080850194506020840160005b8381101561149c57815163ffffffff168752958201959082019060010161187c565b6000602080835283516080828501526118ba60a0850182611867565b905081850151601f19808684030160408701526118d78383611867565b925060408701519150808684030160608701526118f48383611867565b60608801518782038301608089015280518083529194508501925084840190600581901b8501860160005b8281101561194b5784878303018452611939828751611867565b9588019593880193915060010161191f565b509998505050505050505050565b60008060006060848603121561196e57600080fd5b833561197981611337565b925060208401356001600160401b0381111561199457600080fd5b6119a086828701611654565b92505060408401356119b1816114c1565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561174e578351835292840192918401916001016119d8565b600080600060608486031215611a0957600080fd5b8335611a1481611337565b92506020840135915060408401356119b1816114c1565b828152604060208201526000611a44604083018461159a565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7457600080fd5b5051919050565b600060208284031215611a8d57600080fd5b81516114ba81611337565b60006020808385031215611aab57600080fd5b82516001600160401b03811115611ac157600080fd5b8301601f81018513611ad257600080fd5b8051611ae061141182611395565b81815260059190911b82018301908381019087831115611aff57600080fd5b928401925b82841015611b1d57835182529284019290840190611b04565b979650505050505050565b600060208284031215611b3a57600080fd5b81516001600160601b03811681146114ba57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b7e57600080fd5b8260051b8085606085013791909101606001949350505050565b60006020808385031215611bab57600080fd5b82516001600160401b03811115611bc157600080fd5b8301601f81018513611bd257600080fd5b8051611be061141182611395565b81815260059190911b82018301908381019087831115611bff57600080fd5b928401925b82841015611b1d578351611c17816114c1565b82529284019290840190611c04565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c6f604083018486611c26565b95945050505050565b600060208284031215611c8a57600080fd5b81516001600160c01b03811681146114ba57600080fd5b600060208284031215611cb357600080fd5b81516114ba816114c1565b634e487b7160e01b600052601160045260246000fd5b600060018201611ce657611ce6611cbe565b5060010190565b600060ff821660ff8103611d0357611d03611cbe565b60010192915050565b604081526000611d20604083018587611c26565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a44604083018461146b565b8181038181111561133157611331611cbe565b600061ffff808316818103611d7f57611d7f611cbe565b600101939250505056fea26469706673582212202b3e36f430d5f7f12f8124a33676c0954c36bdaf4a71ac7e145cf85fb593480b64736f6c63430008180033","output":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114a7565b60405180910390f35b6100a361009e3660046114e3565b610245565b6040516100879190611641565b6100c36100be3660046116be565b6106c5565b604051610087919061170d565b6100e36100de3660046117a5565b6107d2565b604051610087919061189e565b6101036100fe366004611959565b610eea565b60405161008791906119bc565b61012361011e3660046119f4565b6110a8565b604051610087929190611a2b565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a4c565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a62565b82828151811061022b5761022b611a4c565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a7b565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a7b565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a7b565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a4c565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611a98565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a4c565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a4c565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a7b565b6001600160a01b031681526020018383815181106105b6576105b6611a4c565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a4c565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b28565b6001600160601b031681525085858151811061068257610682611a4c565b6020026020010151828151811061069b5761069b611a4c565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a4c565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a7b565b8282815181106107b2576107b2611a4c565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a7b565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b51565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611b98565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c4f565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611b98565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a4c565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a4c565b905060200201358e88600001518681518110610a9257610a92611a4c565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c78565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a4c565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a4c565b905060200201358d8d8860ff16818110610c2d57610c2d611a4c565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611ca1565b85606001518560ff1681518110610cc057610cc0611a4c565b60200260200101518481518110610cd957610cd9611a4c565b63ffffffff9092166020928302919091019091015282610cf881611cd4565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a4c565b60200260200101518181518110610d8957610d89611a4c565b6020026020010151828281518110610da357610da3611a4c565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a4c565b602002602001018190525050508080610df390611ced565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a7b565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d0c565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611b98565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d36565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611b98565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a4c565b602002602001015187868581518110610ff257610ff2611a4c565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c78565b6001600160c01b031682828151811061108b5761108b611a4c565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a4c565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d36565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611b98565b60008151811061117657611176611a4c565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c78565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a4c565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611cd4565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d55565b909216918061132981611d68565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b91506020838101356001600160401b038111156113f257600080fd5b8401601f8101861361140357600080fd5b803561141661141182611395565b611365565b81815260059190911b8201830190838101908883111561143557600080fd5b928401925b8284101561145c57833561144d81611337565b8252928401929084019061143a565b80955050505050509250929050565b60008151808452602080850194506020840160005b8381101561149c57815187529582019590820190600101611480565b509495945050505050565b6020815260006114ba602083018461146b565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114de816114c1565b919050565b6000806000606084860312156114f857600080fd5b833561150381611337565b92506020848101356001600160401b038082111561152057600080fd5b818701915087601f83011261153457600080fd5b8135818111156115465761154661134f565b611558601f8201601f19168501611365565b9150808252888482850101111561156e57600080fd5b8084840185840137600084828401015250809450505050611591604085016114d3565b90509250925092565b600082825180855260208086019550808260051b8401018186016000805b8581101561163357868403601f19018a52825180518086529086019086860190845b8181101561161e57835180516001600160a01b03168452898101518a8501526040908101516001600160601b031690840152928801926060909201916001016115da565b50509a86019a945050918401916001016115b8565b509198975050505050505050565b6020815260006114ba602083018461159a565b600082601f83011261166557600080fd5b8135602061167561141183611395565b8083825260208201915060208460051b87010193508684111561169757600080fd5b602086015b848110156116b3578035835291830191830161169c565b509695505050505050565b600080604083850312156116d157600080fd5b82356116dc81611337565b915060208301356001600160401b038111156116f757600080fd5b61170385828601611654565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561174e5783516001600160a01b031683529284019291840191600101611729565b50909695505050505050565b60008083601f84011261176c57600080fd5b5081356001600160401b0381111561178357600080fd5b6020830191508360208260051b850101111561179e57600080fd5b9250929050565b600080600080600080608087890312156117be57600080fd5b86356117c981611337565b955060208701356117d9816114c1565b945060408701356001600160401b03808211156117f557600080fd5b818901915089601f83011261180957600080fd5b81358181111561181857600080fd5b8a602082850101111561182a57600080fd5b60208301965080955050606089013591508082111561184857600080fd5b5061185589828a0161175a565b979a9699509497509295939492505050565b60008151808452602080850194506020840160005b8381101561149c57815163ffffffff168752958201959082019060010161187c565b6000602080835283516080828501526118ba60a0850182611867565b905081850151601f19808684030160408701526118d78383611867565b925060408701519150808684030160608701526118f48383611867565b60608801518782038301608089015280518083529194508501925084840190600581901b8501860160005b8281101561194b5784878303018452611939828751611867565b9588019593880193915060010161191f565b509998505050505050505050565b60008060006060848603121561196e57600080fd5b833561197981611337565b925060208401356001600160401b0381111561199457600080fd5b6119a086828701611654565b92505060408401356119b1816114c1565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561174e578351835292840192918401916001016119d8565b600080600060608486031215611a0957600080fd5b8335611a1481611337565b92506020840135915060408401356119b1816114c1565b828152604060208201526000611a44604083018461159a565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7457600080fd5b5051919050565b600060208284031215611a8d57600080fd5b81516114ba81611337565b60006020808385031215611aab57600080fd5b82516001600160401b03811115611ac157600080fd5b8301601f81018513611ad257600080fd5b8051611ae061141182611395565b81815260059190911b82018301908381019087831115611aff57600080fd5b928401925b82841015611b1d57835182529284019290840190611b04565b979650505050505050565b600060208284031215611b3a57600080fd5b81516001600160601b03811681146114ba57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b7e57600080fd5b8260051b8085606085013791909101606001949350505050565b60006020808385031215611bab57600080fd5b82516001600160401b03811115611bc157600080fd5b8301601f81018513611bd257600080fd5b8051611be061141182611395565b81815260059190911b82018301908381019087831115611bff57600080fd5b928401925b82841015611b1d578351611c17816114c1565b82529284019290840190611c04565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c6f604083018486611c26565b95945050505050565b600060208284031215611c8a57600080fd5b81516001600160c01b03811681146114ba57600080fd5b600060208284031215611cb357600080fd5b81516114ba816114c1565b634e487b7160e01b600052601160045260246000fd5b600060018201611ce657611ce6611cbe565b5060010190565b600060ff821660ff8103611d0357611d03611cbe565b60010192915050565b604081526000611d20604083018587611c26565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a44604083018461146b565b8181038181111561133157611331611cbe565b600061ffff808316818103611d7f57611d7f611cbe565b600101939250505056fea26469706673582212202b3e36f430d5f7f12f8124a33676c0954c36bdaf4a71ac7e145cf85fb593480b64736f6c63430008180033","gas_used":1524589,"gas_limit":2033326,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114a7565b60405180910390f35b6100a361009e3660046114e3565b610245565b6040516100879190611641565b6100c36100be3660046116be565b6106c5565b604051610087919061170d565b6100e36100de3660046117a5565b6107d2565b604051610087919061189e565b6101036100fe366004611959565b610eea565b60405161008791906119bc565b61012361011e3660046119f4565b6110a8565b604051610087929190611a2b565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a4c565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a62565b82828151811061022b5761022b611a4c565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a7b565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a7b565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a7b565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a4c565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611a98565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a4c565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a4c565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a7b565b6001600160a01b031681526020018383815181106105b6576105b6611a4c565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a4c565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b28565b6001600160601b031681525085858151811061068257610682611a4c565b6020026020010151828151811061069b5761069b611a4c565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a4c565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a7b565b8282815181106107b2576107b2611a4c565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a7b565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b51565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611b98565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c4f565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611b98565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a4c565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a4c565b905060200201358e88600001518681518110610a9257610a92611a4c565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c78565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a4c565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a4c565b905060200201358d8d8860ff16818110610c2d57610c2d611a4c565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611ca1565b85606001518560ff1681518110610cc057610cc0611a4c565b60200260200101518481518110610cd957610cd9611a4c565b63ffffffff9092166020928302919091019091015282610cf881611cd4565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a4c565b60200260200101518181518110610d8957610d89611a4c565b6020026020010151828281518110610da357610da3611a4c565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a4c565b602002602001018190525050508080610df390611ced565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a7b565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d0c565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611b98565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d36565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611b98565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a4c565b602002602001015187868581518110610ff257610ff2611a4c565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c78565b6001600160c01b031682828151811061108b5761108b611a4c565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a4c565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d36565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611b98565b60008151811061117657611176611a4c565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c78565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a4c565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611cd4565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d55565b909216918061132981611d68565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b91506020838101356001600160401b038111156113f257600080fd5b8401601f8101861361140357600080fd5b803561141661141182611395565b611365565b81815260059190911b8201830190838101908883111561143557600080fd5b928401925b8284101561145c57833561144d81611337565b8252928401929084019061143a565b80955050505050509250929050565b60008151808452602080850194506020840160005b8381101561149c57815187529582019590820190600101611480565b509495945050505050565b6020815260006114ba602083018461146b565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114de816114c1565b919050565b6000806000606084860312156114f857600080fd5b833561150381611337565b92506020848101356001600160401b038082111561152057600080fd5b818701915087601f83011261153457600080fd5b8135818111156115465761154661134f565b611558601f8201601f19168501611365565b9150808252888482850101111561156e57600080fd5b8084840185840137600084828401015250809450505050611591604085016114d3565b90509250925092565b600082825180855260208086019550808260051b8401018186016000805b8581101561163357868403601f19018a52825180518086529086019086860190845b8181101561161e57835180516001600160a01b03168452898101518a8501526040908101516001600160601b031690840152928801926060909201916001016115da565b50509a86019a945050918401916001016115b8565b509198975050505050505050565b6020815260006114ba602083018461159a565b600082601f83011261166557600080fd5b8135602061167561141183611395565b8083825260208201915060208460051b87010193508684111561169757600080fd5b602086015b848110156116b3578035835291830191830161169c565b509695505050505050565b600080604083850312156116d157600080fd5b82356116dc81611337565b915060208301356001600160401b038111156116f757600080fd5b61170385828601611654565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561174e5783516001600160a01b031683529284019291840191600101611729565b50909695505050505050565b60008083601f84011261176c57600080fd5b5081356001600160401b0381111561178357600080fd5b6020830191508360208260051b850101111561179e57600080fd5b9250929050565b600080600080600080608087890312156117be57600080fd5b86356117c981611337565b955060208701356117d9816114c1565b945060408701356001600160401b03808211156117f557600080fd5b818901915089601f83011261180957600080fd5b81358181111561181857600080fd5b8a602082850101111561182a57600080fd5b60208301965080955050606089013591508082111561184857600080fd5b5061185589828a0161175a565b979a9699509497509295939492505050565b60008151808452602080850194506020840160005b8381101561149c57815163ffffffff168752958201959082019060010161187c565b6000602080835283516080828501526118ba60a0850182611867565b905081850151601f19808684030160408701526118d78383611867565b925060408701519150808684030160608701526118f48383611867565b60608801518782038301608089015280518083529194508501925084840190600581901b8501860160005b8281101561194b5784878303018452611939828751611867565b9588019593880193915060010161191f565b509998505050505050505050565b60008060006060848603121561196e57600080fd5b833561197981611337565b925060208401356001600160401b0381111561199457600080fd5b6119a086828701611654565b92505060408401356119b1816114c1565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561174e578351835292840192918401916001016119d8565b600080600060608486031215611a0957600080fd5b8335611a1481611337565b92506020840135915060408401356119b1816114c1565b828152604060208201526000611a44604083018461159a565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7457600080fd5b5051919050565b600060208284031215611a8d57600080fd5b81516114ba81611337565b60006020808385031215611aab57600080fd5b82516001600160401b03811115611ac157600080fd5b8301601f81018513611ad257600080fd5b8051611ae061141182611395565b81815260059190911b82018301908381019087831115611aff57600080fd5b928401925b82841015611b1d57835182529284019290840190611b04565b979650505050505050565b600060208284031215611b3a57600080fd5b81516001600160601b03811681146114ba57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b7e57600080fd5b8260051b8085606085013791909101606001949350505050565b60006020808385031215611bab57600080fd5b82516001600160401b03811115611bc157600080fd5b8301601f81018513611bd257600080fd5b8051611be061141182611395565b81815260059190911b82018301908381019087831115611bff57600080fd5b928401925b82841015611b1d578351611c17816114c1565b82529284019290840190611c04565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c6f604083018486611c26565b95945050505050565b600060208284031215611c8a57600080fd5b81516001600160c01b03811681146114ba57600080fd5b600060208284031215611cb357600080fd5b81516114ba816114c1565b634e487b7160e01b600052601160045260246000fd5b600060018201611ce657611ce6611cbe565b5060010190565b600060ff821660ff8103611d0357611d03611cbe565b60010192915050565b604081526000611d20604083018587611c26565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a44604083018461146b565b8181038181111561133157611331611cbe565b600061ffff808316818103611d7f57611d7f611cbe565b600101939250505056fea26469706673582212202b3e36f430d5f7f12f8124a33676c0954c36bdaf4a71ac7e145cf85fb593480b64736f6c63430008180033","nonce":52,"gas_used":1697863},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x19e847","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xa3356220292a2edda521f0380afd9bae4ff6f8588cb946f7d6250889f2d9112d","block_number":9},{"info":{"transaction_hash":"0x7224f9f8c9558feec8910b776ac56c70c752a1d2412ffb4c9d360f721249b1d5","transaction_index":3,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":117332,"gas_limit":170879,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":111036,"gas_limit":162059,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","address":"0x9a676e781a523b5d0c0e43731313a708cb607508","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x1794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":98133,"gas_limit":147042,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3}]}],"exit":"Stop","out":"0x","nonce":22,"gas_used":140452},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x7d85c","logs":[{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508"],"data":"0x"},{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000000000000100000000000000000000000400080000000000400000002000001000240000000000000000000000000000000020000000000000100800800000004000000000000000000000000400000000100000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000002020400000200000000000040000000000002008000000000001000020000000000000000000000000000000000000000000000000000000000000400000"},"block_hash":"0xdc661eb62f3503115532a4a4ebf9dbb29830a7f54b0435e7188a418d1ac7faf1","block_number":12},{"info":{"transaction_hash":"0xee9e2b75dd907e5bc685f65bbb929ae6b4f01a2cf9c934a8c951ee1597892033","transaction_index":4,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x0165878a594ca255338adfa4d48449f69242eb8f","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x0165878a594ca255338adfa4d48449f69242eb8f","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":6,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x242d95","logs":[{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000001000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000040000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x4e339f47e5c414499741f7c79245654e069b212d8954eb2f72386530919f3cad","block_number":3},{"info":{"transaction_hash":"0x9ccdd78d836a11c54b9c9110f13c517cd1eb6b9dad3ed4ef0470ff024f8266c5","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xa82ff9afd8f496c3d6ac40e2a0f282e47488cfc9","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xa82ff9afd8f496c3d6ac40e2a0f282e47488cfc9","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b50610447806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c4565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e1565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610336565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead81600081518110610204576102046103fb565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156102b85783516001600160a01b031683529284019291840191600101610293565b50909695505050505050565b6000602082840312156102d657600080fd5b813561013381610226565b6000825160005b8181101561030257602081860181015185830152016102e8565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033181610226565b919050565b6000602080838503121561034957600080fd5b825167ffffffffffffffff8082111561036157600080fd5b818501915085601f83011261037557600080fd5b81518181111561038757610387610310565b8060051b604051601f19603f830116810181811085821117156103ac576103ac610310565b6040529182528482019250838101850191888311156103ca57600080fd5b938501935b828510156103ef576103e085610326565b845293850193928501926103cf565b98975050505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220d2a1dc3d5b3de166be22fce7e789ceac2302c613380087624652f3f48de1ed0864736f6c63430008180033","output":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c4565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e1565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610336565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead81600081518110610204576102046103fb565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156102b85783516001600160a01b031683529284019291840191600101610293565b50909695505050505050565b6000602082840312156102d657600080fd5b813561013381610226565b6000825160005b8181101561030257602081860181015185830152016102e8565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033181610226565b919050565b6000602080838503121561034957600080fd5b825167ffffffffffffffff8082111561036157600080fd5b818501915085601f83011261037557600080fd5b81518181111561038757610387610310565b8060051b604051601f19603f830116810181811085821117156103ac576103ac610310565b6040529182528482019250838101850191888311156103ca57600080fd5b938501935b828510156103ef576103e085610326565b845293850193928501926103cf565b98975050505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220d2a1dc3d5b3de166be22fce7e789ceac2302c613380087624652f3f48de1ed0864736f6c63430008180033","gas_used":219263,"gas_limit":306088,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c4565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e1565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610336565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead81600081518110610204576102046103fb565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156102b85783516001600160a01b031683529284019291840191600101610293565b50909695505050505050565b6000602082840312156102d657600080fd5b813561013381610226565b6000825160005b8181101561030257602081860181015185830152016102e8565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033181610226565b919050565b6000602080838503121561034957600080fd5b825167ffffffffffffffff8082111561036157600080fd5b818501915085601f83011261037557600080fd5b81518181111561038757610387610310565b8060051b604051601f19603f830116810181811085821117156103ac576103ac610310565b6040529182528482019250838101850191888311156103ca57600080fd5b938501935b828510156103ef576103e085610326565b845293850193928501926103cf565b98975050505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220d2a1dc3d5b3de166be22fce7e789ceac2302c613380087624652f3f48de1ed0864736f6c63430008180033","nonce":34,"gas_used":289731},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x46bc3","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xd3c3c4b6b66ab42e6e9b84d7f396454f5a9212ef507e4dd2a84f445431da8a3f","block_number":2},{"info":{"transaction_hash":"0x5c2ef0a0614d6d04bf3c8181b9130589f20547110fabe10c738ae977ce457f93","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xc5a5c42992decbae36851359345fe25997f5c42d","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xc5a5c42992decbae36851359345fe25997f5c42d","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":28,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8be1b","logs":[{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400004000000000000000000000000000000000000000000000400000000000000400000000000000004000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020080000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x5dae897ded4889dc65ca7023d8497e57d010b51b7abde53c24f26b3485eacd81","block_number":18},{"info":{"transaction_hash":"0xb030f2d4fab25e0e55fbea021823b7c402506436d336bb86ae31f21a36dbe5a7","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":9,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8be1b","logs":[{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000002000000000000000000000008000000000000000000000000000000000000000000020000000000000000000000000040000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xa9a73f22a7ec019b54a5a4d43296b03a0d61022763f5fdd971698f75d1b29f0a","block_number":5},{"info":{"transaction_hash":"0x0fc9d21a7fccabb61343e067ec11d580f22dbd1b540ecd5120f805f6768889c4","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60806040526040516104d43803806104d4833981016040819052610022916102d1565b61002e82826000610035565b50506103ee565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104ad60279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6101e85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610136565b600080856001600160a01b031685604051610203919061039f565b600060405180830381855af49150503d806000811461023e576040519150601f19603f3d011682016040523d82523d6000602084013e610243565b606091505b50909250905061025482828661025e565b9695505050505050565b6060831561026d5750816100c6565b82511561027d5782518084602001fd5b8160405162461bcd60e51b815260040161013691906103bb565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102c85781810151838201526020016102b0565b50506000910152565b600080604083850312156102e457600080fd5b82516001600160a01b03811681146102fb57600080fd5b60208401519092506001600160401b038082111561031857600080fd5b818501915085601f83011261032c57600080fd5b81518181111561033e5761033e610297565b604051601f8201601f19908116603f0116810190838211818310171561036657610366610297565b8160405282815288602084870101111561037f57600080fd5b6103908360208301602088016102ad565b80955050505050509250929050565b600082516103b18184602087016102ad565b9190910192915050565b60208152600082518060208401526103da8160408501602087016102ad565b601f01601f19169190910160400192915050565b60b1806103fc6000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212201b5f899d9100d05ffd16b26a8e94bf20e28dd085fba06b911d8ef847c76d3bf864736f6c63430008180033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000064c0c53b8b0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e800000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc00000000000000000000000000000000000000000000000000000000","output":"0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212201b5f899d9100d05ffd16b26a8e94bf20e28dd085fba06b911d8ef847c76d3bf864736f6c63430008180033","gas_used":161010,"gas_limit":231470,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","address":"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xc0c53b8b0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e800000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc","output":"0x","gas_used":97510,"gas_limit":200450,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2}]}],"exit":"Return","out":"0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212201b5f899d9100d05ffd16b26a8e94bf20e28dd085fba06b911d8ef847c76d3bf864736f6c63430008180033","nonce":56,"gas_used":235266},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x39702","logs":[{"address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3"],"data":"0x"},{"address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955"],"data":"0x"},{"address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000800000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000002200001000000000400000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400002000000000000000000000000001000000000020000000200000000000040000040000002000000001000000000020000000000080000000000000000000000000000000000000000000000400000000"},"block_hash":"0xff710e29f3494cca8c19d8d84ab91ae20bb917a0a904dbe97a3dcecf51519afd","block_number":13},{"info":{"transaction_hash":"0x0522948d2d86e6eefacbffda3bf89dd98f7aadad2949c5b6086eac98993fee0f","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":145473,"gas_limit":223757,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0x0165878a594ca255338adfa4d48449f69242eb8f","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":138912,"gas_limit":213850,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x0165878a594ca255338adfa4d48449f69242eb8f","address":"0x0b306bf915c4d645ff596e518faf3f9669b97016","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xd4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e8","output":"0x","gas_used":125780,"gas_limit":197799,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad4"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xaf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c20"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e8"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4},{"Log":5},{"Log":6}]}],"exit":"Stop","out":"0x","nonce":23,"gas_used":169265},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x29531","logs":[{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016"],"data":"0x"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad4"],"data":"0x"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0xaf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c20"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e8"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000008400000000000000000800000000000000010000000000000000000000000000000000000000000100000000000000000041000000000000000000400000402000001002000000000000000000000000000020000020000000000000300800800000004000000000000000000000000440000000100000000000000000000000000000000000080000000000000100000000000000000000000000000000400000000000000000000000000000000000000000024400000200000000000040000000000002008002000000000000020000000000000000100400800000400000000000000000000000000000001400200"},"block_hash":"0xa353358546466a6edfc12ffc2251be42f4542e90bfe09816486471a8d00e850c","block_number":13},{"info":{"transaction_hash":"0xa3ad69458743fe5b53a01650375595a9d2b5aa966e76a95084434d006819eaa7","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6106948061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","output":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","gas_used":360915,"gas_limit":493364,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","nonce":33,"gas_used":441993},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x6be89","logs":[{"address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000008000000000"},"block_hash":"0xe6952932a1adcda6cb66f61d9b48d75afe84ec0d62b15a63b279a10dfcfdd979","block_number":1},{"info":{"transaction_hash":"0xd4419af41a68cb6d42cf7795e938fa39e1bea5600b124364fb6c5b304c2f9220","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6101006040523480156200001257600080fd5b506040516200337938038062003379833981016040819052620000359162000140565b6001600160a01b0380841660805280831660a052811660c0526200005862000065565b50504660e0525062000194565b600054610100900460ff1615620000d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000125576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013d57600080fd5b50565b6000806000606084860312156200015657600080fd5b8351620001638162000127565b6020850151909350620001768162000127565b6040850151909250620001898162000127565b809150509250925092565b60805160a05160c05160e05161318f620001ea60003960006114b70152600061046e0152600061028501526000818161051a01528181610b8201528181610ecf01528181610f230152611a6c015261318f6000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b3d565b610a64565b61021e610a9c565b61032461030f366004612b76565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612b99565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bc7565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c08565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61021e61049e366004612cd1565b610d50565b61021e6104b1366004612d13565b610ec4565b61021e6104c4366004612d64565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612db7565b610fe1565b61021e6104fd366004612d13565b611019565b61021e610510366004612de3565b61114d565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61025a61054a366004612bc7565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e4f565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e6c565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eb6565b6106c15760405162461bcd60e51b815260040161062490612ed3565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f1b565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eb6565b610b245760405162461bcd60e51b815260040161062490612ed3565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bbf5760405162461bcd60e51b815260040161062490612f85565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612fe3565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612fe3565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f1b565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612fe3565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612fe3565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612fe3565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612fe3565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f0c5760405162461bcd60e51b815260040161062490612f85565b610bca84848484611d4c565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f605760405162461bcd60e51b815260040161062490612f85565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f1b565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612fe3565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612fe3565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612fe3565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612fe3565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612fe3565b90506020020160208101906113619190612ff9565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f000000000000000000000000000000000000000000000000000000000000000046036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e4f565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e6c565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906117839086908690600401613066565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c4919061307f565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130a9565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130d8565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612fe3565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130eb565b815481106122e8576122e8612fe3565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612fe3565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e6130fe565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613114565b036124c05750565b60018160048111156124d4576124d4613114565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613114565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613114565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613114565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eb6565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130d8565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061312a565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b81526004016106249190613146565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff80821115612aa357600080fd5b818901915089601f830112612ab757600080fd5b813581811115612ac957612ac9612a1e565b604051601f8201601f19908116603f01168101908382118183101715612af157612af1612a1e565b816040528281528c6020848701011115612b0a57600080fd5b8260208601602083013760006020848301015280955050505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5057600080fd5b8235612b5b816129d3565b91506020830135612b6b81612b2f565b809150509250929050565b600060208284031215612b8857600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bac57600080fd5b8235612bb7816129d3565b91506020830135612b6b816129d3565b600080600060608486031215612bdc57600080fd5b8335612be7816129d3565b92506020840135612bf7816129d3565b929592945050506040919091013590565b604080825283519082018190526000906020906060840190828701845b82811015612c4a5781516001600160a01b031684529284019290840190600101612c25565b5050508381038285015284518082528583019183019060005b81811015612c7f57835183529284019291840191600101612c63565b5090979650505050505050565b60008083601f840112612c9e57600080fd5b50813567ffffffffffffffff811115612cb657600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612ce457600080fd5b823567ffffffffffffffff811115612cfb57600080fd5b612d0785828601612c8c565b90969095509350505050565b60008060008060808587031215612d2957600080fd5b8435612d34816129d3565b93506020850135612d44816129d3565b92506040850135612d54816129d3565b9396929550929360600135925050565b60008060008060808587031215612d7a57600080fd5b8435612d85816129d3565b93506020850135612d95816129d3565b9250604085013591506060850135612dac816129d3565b939692955090935050565b60008060408385031215612dca57600080fd5b8235612dd5816129d3565b946020939093013593505050565b60008060008060408587031215612df957600080fd5b843567ffffffffffffffff80821115612e1157600080fd5b612e1d88838901612c8c565b90965094506020870135915080821115612e3657600080fd5b50612e4387828801612c8c565b95989497509550505050565b600060208284031215612e6157600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612ec857600080fd5b8151611d4581612b2f565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561300b57600080fd5b8135611d4581612b2f565b60005b83811015613031578181015183820152602001613019565b50506000910152565b60008151808452613052816020860160208601613016565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461303a565b60006020828403121561309157600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130bb57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130c2565b818103818111156121e6576121e66130c2565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161313c818460208701613016565b9190910192915050565b602081526000611d45602083018461303a56fea26469706673582212208f93c215613625117caec9113257c8859da3eb85d10c3f4716517f3a64d0f80c64736f6c63430008180033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc90000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853","output":"0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b3d565b610a64565b61021e610a9c565b61032461030f366004612b76565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612b99565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bc7565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c08565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612cd1565b610d50565b61021e6104b1366004612d13565b610ec4565b61021e6104c4366004612d64565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612db7565b610fe1565b61021e6104fd366004612d13565b611019565b61021e610510366004612de3565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bc7565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e4f565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e6c565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eb6565b6106c15760405162461bcd60e51b815260040161062490612ed3565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f1b565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eb6565b610b245760405162461bcd60e51b815260040161062490612ed3565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f85565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612fe3565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612fe3565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f1b565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612fe3565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612fe3565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612fe3565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612fe3565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f85565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f85565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f1b565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612fe3565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612fe3565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612fe3565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612fe3565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612fe3565b90506020020160208101906113619190612ff9565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e4f565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e6c565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906117839086908690600401613066565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c4919061307f565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130a9565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130d8565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612fe3565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130eb565b815481106122e8576122e8612fe3565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612fe3565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e6130fe565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613114565b036124c05750565b60018160048111156124d4576124d4613114565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613114565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613114565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613114565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eb6565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130d8565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061312a565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b81526004016106249190613146565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff80821115612aa357600080fd5b818901915089601f830112612ab757600080fd5b813581811115612ac957612ac9612a1e565b604051601f8201601f19908116603f01168101908382118183101715612af157612af1612a1e565b816040528281528c6020848701011115612b0a57600080fd5b8260208601602083013760006020848301015280955050505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5057600080fd5b8235612b5b816129d3565b91506020830135612b6b81612b2f565b809150509250929050565b600060208284031215612b8857600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bac57600080fd5b8235612bb7816129d3565b91506020830135612b6b816129d3565b600080600060608486031215612bdc57600080fd5b8335612be7816129d3565b92506020840135612bf7816129d3565b929592945050506040919091013590565b604080825283519082018190526000906020906060840190828701845b82811015612c4a5781516001600160a01b031684529284019290840190600101612c25565b5050508381038285015284518082528583019183019060005b81811015612c7f57835183529284019291840191600101612c63565b5090979650505050505050565b60008083601f840112612c9e57600080fd5b50813567ffffffffffffffff811115612cb657600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612ce457600080fd5b823567ffffffffffffffff811115612cfb57600080fd5b612d0785828601612c8c565b90969095509350505050565b60008060008060808587031215612d2957600080fd5b8435612d34816129d3565b93506020850135612d44816129d3565b92506040850135612d54816129d3565b9396929550929360600135925050565b60008060008060808587031215612d7a57600080fd5b8435612d85816129d3565b93506020850135612d95816129d3565b9250604085013591506060850135612dac816129d3565b939692955090935050565b60008060408385031215612dca57600080fd5b8235612dd5816129d3565b946020939093013593505050565b60008060008060408587031215612df957600080fd5b843567ffffffffffffffff80821115612e1157600080fd5b612e1d88838901612c8c565b90965094506020870135915080821115612e3657600080fd5b50612e4387828801612c8c565b95989497509550505050565b600060208284031215612e6157600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612ec857600080fd5b8151611d4581612b2f565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561300b57600080fd5b8135611d4581612b2f565b60005b83811015613031578181015183820152602001613019565b50506000910152565b60008151808452613052816020860160208601613016565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461303a565b60006020828403121561309157600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130bb57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130c2565b818103818111156121e6576121e66130c2565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161313c818460208701613016565b9190910192915050565b602081526000611d45602083018461303a56fea26469706673582212208f93c215613625117caec9113257c8859da3eb85d10c3f4716517f3a64d0f80c64736f6c63430008180033","gas_used":2564235,"gas_limit":3410165,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b3d565b610a64565b61021e610a9c565b61032461030f366004612b76565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612b99565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bc7565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c08565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612cd1565b610d50565b61021e6104b1366004612d13565b610ec4565b61021e6104c4366004612d64565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612db7565b610fe1565b61021e6104fd366004612d13565b611019565b61021e610510366004612de3565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bc7565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e4f565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e6c565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eb6565b6106c15760405162461bcd60e51b815260040161062490612ed3565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f1b565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eb6565b610b245760405162461bcd60e51b815260040161062490612ed3565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f85565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612fe3565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612fe3565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f1b565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612fe3565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612fe3565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612fe3565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612fe3565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f85565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f85565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f1b565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612fe3565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612fe3565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612fe3565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612fe3565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612fe3565b90506020020160208101906113619190612ff9565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e4f565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e6c565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906117839086908690600401613066565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c4919061307f565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130a9565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130d8565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612fe3565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130eb565b815481106122e8576122e8612fe3565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612fe3565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e6130fe565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613114565b036124c05750565b60018160048111156124d4576124d4613114565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613114565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613114565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613114565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eb6565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130d8565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061312a565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b81526004016106249190613146565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff80821115612aa357600080fd5b818901915089601f830112612ab757600080fd5b813581811115612ac957612ac9612a1e565b604051601f8201601f19908116603f01168101908382118183101715612af157612af1612a1e565b816040528281528c6020848701011115612b0a57600080fd5b8260208601602083013760006020848301015280955050505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5057600080fd5b8235612b5b816129d3565b91506020830135612b6b81612b2f565b809150509250929050565b600060208284031215612b8857600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bac57600080fd5b8235612bb7816129d3565b91506020830135612b6b816129d3565b600080600060608486031215612bdc57600080fd5b8335612be7816129d3565b92506020840135612bf7816129d3565b929592945050506040919091013590565b604080825283519082018190526000906020906060840190828701845b82811015612c4a5781516001600160a01b031684529284019290840190600101612c25565b5050508381038285015284518082528583019183019060005b81811015612c7f57835183529284019291840191600101612c63565b5090979650505050505050565b60008083601f840112612c9e57600080fd5b50813567ffffffffffffffff811115612cb657600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612ce457600080fd5b823567ffffffffffffffff811115612cfb57600080fd5b612d0785828601612c8c565b90969095509350505050565b60008060008060808587031215612d2957600080fd5b8435612d34816129d3565b93506020850135612d44816129d3565b92506040850135612d54816129d3565b9396929550929360600135925050565b60008060008060808587031215612d7a57600080fd5b8435612d85816129d3565b93506020850135612d95816129d3565b9250604085013591506060850135612dac816129d3565b939692955090935050565b60008060408385031215612dca57600080fd5b8235612dd5816129d3565b946020939093013593505050565b60008060008060408587031215612df957600080fd5b843567ffffffffffffffff80821115612e1157600080fd5b612e1d88838901612c8c565b90965094506020870135915080821115612e3657600080fd5b50612e4387828801612c8c565b95989497509550505050565b600060208284031215612e6157600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612ec857600080fd5b8151611d4581612b2f565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561300b57600080fd5b8135611d4581612b2f565b60005b83811015613031578181015183820152602001613019565b50506000910152565b60008151808452613052816020860160208601613016565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461303a565b60006020828403121561309157600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130bb57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130c2565b818103818111156121e6576121e66130c2565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161313c818460208701613016565b9190910192915050565b602081526000611d45602083018461303a56fea26469706673582212208f93c215613625117caec9113257c8859da3eb85d10c3f4716517f3a64d0f80c64736f6c63430008180033","nonce":13,"gas_used":2823365},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x2b14c5","logs":[{"address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000"},"block_hash":"0xd4b95e4ec6f57d6d419c266057e9a588e0aa952c244f102815e22672412725f4","block_number":8},{"info":{"transaction_hash":"0xd89622c01e915286913ae41dde34ea10422f2db5e37d325b526b69190e2d349a","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000010422bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":142372,"gas_limit":205727,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef286000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000010422bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":135635,"gas_limit":195929,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","address":"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x22bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":122351,"gas_limit":180008,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":19,"gas_used":166180},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x28924","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0"],"data":"0x"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400000000000000000c00000000000000000000000000000000000000000080000000000000000100000000000000001000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800000004000000000000040000000000400000000108000000000000000000000000000000000080000000000000000000000000000000040000000002000400000000000000000000000000000000000000002020400000200000000000040000000000002008000000000000000020000000000000000000000000000000000000000000000000000000002000400000"},"block_hash":"0xdc661eb62f3503115532a4a4ebf9dbb29830a7f54b0435e7188a418d1ac7faf1","block_number":12},{"info":{"transaction_hash":"0xa83da15132426dca2d366630cae6c6649cf93e8bb299ee41e9454ff5bfeab007","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":35,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8be1b","logs":[{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400008000000000000000000010000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000001000"},"block_hash":"0x35626da0b0baac650ac5b7d13960a8734301f228cfec3f46aea30afabcb21714","block_number":3},{"info":{"transaction_hash":"0x761d8cd21ff98b87e7d01571b73e98b14a6c22bfcf8516703399d7dec0e9ad51","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":4,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x12b15f","logs":[{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000001000000000100000000000000"},"block_hash":"0x4e339f47e5c414499741f7c79245654e069b212d8954eb2f72386530919f3cad","block_number":3},{"info":{"transaction_hash":"0x349f5791ce5597d671bfc13b1e0237de0732d456e59400e3416a0fda4c213de9","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b5060405161074538038061074583398101604081905261002f91610259565b60005b825181101561006d576100658382815181106100505761005061032f565b6020026020010151600161007e60201b60201c565b600101610032565b5061007781610150565b5050610345565b6001600160a01b0382166100ef5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b60648201526084015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b0381166101be5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b60648201526084016100e6565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b038116811461025457600080fd5b919050565b6000806040838503121561026c57600080fd5b82516001600160401b038082111561028357600080fd5b818501915085601f83011261029757600080fd5b81516020828211156102ab576102ab610227565b8160051b604051601f19603f830116810181811086821117156102d0576102d0610227565b6040529283528183019350848101820192898411156102ee57600080fd5b948201945b83861015610313576103048661023d565b855294820194938201936102f3565b9650610322905087820161023d565b9450505050509250929050565b634e487b7160e01b600052603260045260246000fd5b6103f1806103546000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122082d0bf2d943ad14055e4e88fc955638b565f43d854afdcd3d6cd966fe8c2201a64736f6c634300081800330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000003000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122082d0bf2d943ad14055e4e88fc955638b565f43d854afdcd3d6cd966fe8c2201a64736f6c63430008180033","gas_used":254172,"gas_limit":355454,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122082d0bf2d943ad14055e4e88fc955638b565f43d854afdcd3d6cd966fe8c2201a64736f6c63430008180033","nonce":1,"gas_used":338170},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x528fa","logs":[{"address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},{"address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},{"address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},{"address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","topics":["0x06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"}],"logsBloom":"0x00000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000004801000000000000000"},"block_hash":"0x2f1135f0c94511e50fccb0d74f654cdefcbe7279ce4484af1b28db7826c62bbf","block_number":2},{"info":{"transaction_hash":"0x9bd6c2f1599b5920937e13a0c12fe12f3068761b0d4a90c433151d72a33fde39","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x68b1d87f95878fe05b998f19b66f4baba5de1aed","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x68b1d87f95878fe05b998f19b66f4baba5de1aed","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a06040523480156200001157600080fd5b5060405162001ec538038062001ec58339810160408190526200003491620001a8565b6001600160a01b038116620000cb5760405162461bcd60e51b815260206004820152604c60248201527f44656c617965645769746864726177616c526f757465722e636f6e737472756360448201527f746f723a205f656967656e506f644d616e616765722063616e6e6f742062652060648201526b7a65726f206164647265737360a01b608482015260a4015b60405180910390fd5b6001600160a01b038116608052620000e2620000e9565b50620001da565b600054610100900460ff1615620001535760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401620000c2565b60005460ff9081161015620001a6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b600060208284031215620001bb57600080fd5b81516001600160a01b0381168114620001d357600080fd5b9392505050565b608051611cc8620001fd600039600081816101fa0152610be00152611cc86000f3fe60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f0565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a13565b610aba565b34801561032357600080fd5b50610337610332366004611a13565b610b3d565b6040516101bf9190611a3f565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4d565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a13565b610f0e565b34801561043157600080fd5b50610170610440366004611a86565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acc565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b22565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b3f565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b89565b6105f65760405162461bcd60e51b815260040161055990611bab565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c09565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1c565b8154811061071d5761071d611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1c565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c45565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1c565b8154811061082757610827611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c2f565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c09565b905060008167ffffffffffffffff8111156108dd576108dd611c45565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1c565b8154811061096557610965611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c2f565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b89565b610a675760405162461bcd60e51b815260040161055990611bab565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c2f565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1c565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000000000000000000000000000000000000000000000169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b22565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5b565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c09565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5b565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5b565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b22565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b3f565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1c565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1c565b8154811061163357611633611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1c565b43101561168657506116a6565b805161169b906001600160e01b031686611c1c565b9450506001016115e2565b6116b08184611c1c565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1c565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000919060409081850190868401855b828110156119e3576119d3848351611985565b92840192908501906001016119c0565b5091979650505050505050565b600060208284031215611a0257600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2657600080fd5b8235611a3181611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6057600080fd5b8235611a6b81611933565b91506020830135611a7b81611933565b809150509250929050565b60008060008060808587031215611a9c57600080fd5b8435611aa781611933565b93506020850135611ab781611933565b93969395505050506040820135916060013590565b602080825282518282015282810151604080840181905281516060850181905260009392830191849160808701905b8084101561088657611b0e828651611985565b938501936001939093019290820190611afb565b600060208284031215611b3457600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9b57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf3565b80820180821115610b3757610b37611bf3565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122008c24927adbff47182d3eb1466e14dfabce75639c9bbc81de71096db25fc9c1c64736f6c634300081800330000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6","output":"0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f0565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a13565b610aba565b34801561032357600080fd5b50610337610332366004611a13565b610b3d565b6040516101bf9190611a3f565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4d565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a13565b610f0e565b34801561043157600080fd5b50610170610440366004611a86565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acc565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b22565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b3f565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b89565b6105f65760405162461bcd60e51b815260040161055990611bab565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c09565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1c565b8154811061071d5761071d611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1c565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c45565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1c565b8154811061082757610827611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c2f565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c09565b905060008167ffffffffffffffff8111156108dd576108dd611c45565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1c565b8154811061096557610965611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c2f565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b89565b610a675760405162461bcd60e51b815260040161055990611bab565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c2f565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1c565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b22565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5b565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c09565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5b565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5b565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b22565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b3f565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1c565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1c565b8154811061163357611633611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1c565b43101561168657506116a6565b805161169b906001600160e01b031686611c1c565b9450506001016115e2565b6116b08184611c1c565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1c565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000919060409081850190868401855b828110156119e3576119d3848351611985565b92840192908501906001016119c0565b5091979650505050505050565b600060208284031215611a0257600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2657600080fd5b8235611a3181611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6057600080fd5b8235611a6b81611933565b91506020830135611a7b81611933565b809150509250929050565b60008060008060808587031215611a9c57600080fd5b8435611aa781611933565b93506020850135611ab781611933565b93969395505050506040820135916060013590565b602080825282518282015282810151604080840181905281516060850181905260009392830191849160808701905b8084101561088657611b0e828651611985565b938501936001939093019290820190611afb565b600060208284031215611b3457600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9b57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf3565b80820180821115610b3757610b37611bf3565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122008c24927adbff47182d3eb1466e14dfabce75639c9bbc81de71096db25fc9c1c64736f6c63430008180033","gas_used":1498898,"gas_limit":2000944,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f0565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a13565b610aba565b34801561032357600080fd5b50610337610332366004611a13565b610b3d565b6040516101bf9190611a3f565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4d565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a13565b610f0e565b34801561043157600080fd5b50610170610440366004611a86565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acc565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b22565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b3f565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b89565b6105f65760405162461bcd60e51b815260040161055990611bab565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c09565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1c565b8154811061071d5761071d611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1c565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c45565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1c565b8154811061082757610827611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c2f565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c09565b905060008167ffffffffffffffff8111156108dd576108dd611c45565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1c565b8154811061096557610965611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c2f565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b89565b610a675760405162461bcd60e51b815260040161055990611bab565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c2f565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1c565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b22565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5b565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c09565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5b565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5b565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b22565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b3f565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1c565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1c565b8154811061163357611633611c2f565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1c565b43101561168657506116a6565b805161169b906001600160e01b031686611c1c565b9450506001016115e2565b6116b08184611c1c565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1c565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000919060409081850190868401855b828110156119e3576119d3848351611985565b92840192908501906001016119c0565b5091979650505050505050565b600060208284031215611a0257600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2657600080fd5b8235611a3181611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6057600080fd5b8235611a6b81611933565b91506020830135611a7b81611933565b809150509250929050565b60008060008060808587031215611a9c57600080fd5b8435611aa781611933565b93506020850135611ab781611933565b93969395505050506040820135916060013590565b602080825282518282015282810151604080840181905281516060850181905260009392830191849160808701905b8084101561088657611b0e828651611985565b938501936001939093019290820190611afb565b600060208284031215611b3457600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9b57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf3565b80820180821115610b3757610b37611bf3565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122008c24927adbff47182d3eb1466e14dfabce75639c9bbc81de71096db25fc9c1c64736f6c63430008180033","nonce":18,"gas_used":1675638},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x455c56","logs":[{"address":"0x68b1d87f95878fe05b998f19b66f4baba5de1aed","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000008000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000"},"block_hash":"0x78ae1dc60d5a6304aa339e8aaf1ce85caa9087f90e81ead058aca2a258c890bd","block_number":11},{"info":{"transaction_hash":"0x7c88615875ed593e5512621866226fb087d83925659156131063568e3b1e5782","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052348015600f57600080fd5b50607780601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220d9b5867338741992fb34ad4d7cbd0a6be2f72f88e519e77dfae6583d2333734564736f6c63430008180033","output":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220d9b5867338741992fb34ad4d7cbd0a6be2f72f88e519e77dfae6583d2333734564736f6c63430008180033","gas_used":23875,"gas_limit":47605,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220d9b5867338741992fb34ad4d7cbd0a6be2f72f88e519e77dfae6583d2333734564736f6c63430008180033","nonce":2,"gas_used":79145},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x13529","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x4e339f47e5c414499741f7c79245654e069b212d8954eb2f72386530919f3cad","block_number":3},{"info":{"transaction_hash":"0x6ea78c3414677766a62f4c541cfb745fdfe0841a3497ea85a3e4ce886192fa5a","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x99a88ec400000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377800000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf","output":"0x","gas_used":17021,"gas_limit":31821,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x3659cfe600000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf","output":"0x","gas_used":11547,"gas_limit":25979,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":43,"gas_used":38821},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x3050ac","logs":[{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000020000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020200000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000"},"block_hash":"0x0278ea2b38f9769073f11d2038144ac3be14552d0c813cc12085d466e172f5f3","block_number":6},{"info":{"transaction_hash":"0xf2082cb7ba60a7b1d36ef9dda8b257999f072c30f99c9b6c8247b92269a881be","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x82e01223d51eb87e16a03e24687edf0f294da6f1","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x82e01223d51eb87e16a03e24687edf0f294da6f1","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b5060405161046a38038061046a83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6103d7806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea2646970667358221220355151a18763854f71011cb9636c419bc4393ef5d1924777a929c1e19aaa390964736f6c634300080c00330000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","output":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea2646970667358221220355151a18763854f71011cb9636c419bc4393ef5d1924777a929c1e19aaa390964736f6c634300080c0033","gas_used":219187,"gas_limit":306105,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea2646970667358221220355151a18763854f71011cb9636c419bc4393ef5d1924777a929c1e19aaa390964736f6c634300080c0033","nonce":54,"gas_used":290049},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x46d01","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x30dcb574013c3ec13eecea8728e4881e1d615d9486b7dbc7a9839a6ea6804571","block_number":11},{"info":{"transaction_hash":"0x5dead20b4c3f813eda86ad0db00804216aad53392b85ccdd5cd198703ebdb975","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xf5059a5d33d5853360d16c683c16e67980206f36","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xf5059a5d33d5853360d16c683c16e67980206f36","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":37,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8be1b","logs":[{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000c00010000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000400000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x8538a23d64a81d55ad80331969daab75b21ea3c98cd48b108e431c078e92200d","block_number":4},{"info":{"transaction_hash":"0x5c7a4ba4a102cd96d6960e6552a8521370dc6e81b59af7385b7c4e27edd119c5","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":3,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x9f344","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000080000400000000000000000000000000001000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000008000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x4e339f47e5c414499741f7c79245654e069b212d8954eb2f72386530919f3cad","block_number":3},{"info":{"transaction_hash":"0xbd7d5d3864c8406f75b4c00be61882ed8ea14af686ec047a447f9a3e6248d2fd","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":38,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x117c36","logs":[{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000020000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000100000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000080000000000000000000000000000000000000000000000"},"block_hash":"0x8538a23d64a81d55ad80331969daab75b21ea3c98cd48b108e431c078e92200d","block_number":4},{"info":{"transaction_hash":"0xf1a5f1bb3c7c6e852bf93d19d49759d4f1fc89d9550b807365b50b1d92eca9a8","transaction_index":3,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":5,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1b6f7a","logs":[{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000240000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000001000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x4e339f47e5c414499741f7c79245654e069b212d8954eb2f72386530919f3cad","block_number":3},{"info":{"transaction_hash":"0x3e4e0ce43145a9e80b5f0dad88697d66d94d83368a0f92a5c79bf7274d95f592","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x959922be3caee4b8cd9a407cc3ac1c251c2007b1","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x959922be3caee4b8cd9a407cc3ac1c251c2007b1","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b50604051610efe380380610efe83398101604081905261002f9161004e565b5050610088565b6001600160a01b038116811461004b57600080fd5b50565b6000806040838503121561006157600080fd5b825161006c81610036565b602084015190925061007d81610036565b809150509250929050565b610e67806100976000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd5565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d13565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d60565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d7d565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610dc7565b6105b35760405162461bcd60e51b815260040161051990610de9565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610dc7565b61070d5760405162461bcd60e51b815260040161051990610de9565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d60565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d7d565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff80821115610c8b57600080fd5b818501915085601f830112610c9f57600080fd5b813581811115610cae57600080fd5b8660208260051b8501011115610cc357600080fd5b60209290920196919550909350505050565b600080600060608486031215610cea57600080fd5b8335610cf581610af7565b9250610d0360208501610b0c565b9150604084013590509250925092565b60008060008060808587031215610d2957600080fd5b8435610d3481610af7565b9350610d4260208601610b0c565b9250610d5060408601610b0c565b9396929550929360600135925050565b600060208284031215610d7257600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dd957600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea264697066735822122073763b5180077a8bc6ac9f9f13d1ff53a2202a0e325b92566fd1ff7df689217864736f6c63430008180033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd5565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d13565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d60565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d7d565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610dc7565b6105b35760405162461bcd60e51b815260040161051990610de9565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610dc7565b61070d5760405162461bcd60e51b815260040161051990610de9565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d60565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d7d565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff80821115610c8b57600080fd5b818501915085601f830112610c9f57600080fd5b813581811115610cae57600080fd5b8660208260051b8501011115610cc357600080fd5b60209290920196919550909350505050565b600080600060608486031215610cea57600080fd5b8335610cf581610af7565b9250610d0360208501610b0c565b9150604084013590509250925092565b60008060008060808587031215610d2957600080fd5b8435610d3481610af7565b9350610d4260208601610b0c565b9250610d5060408601610b0c565b9396929550929360600135925050565b600060208284031215610d7257600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dd957600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea264697066735822122073763b5180077a8bc6ac9f9f13d1ff53a2202a0e325b92566fd1ff7df689217864736f6c63430008180033","gas_used":738493,"gas_limit":993926,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd5565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d13565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d60565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d7d565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610dc7565b6105b35760405162461bcd60e51b815260040161051990610de9565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610dc7565b61070d5760405162461bcd60e51b815260040161051990610de9565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d60565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d7d565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff80821115610c8b57600080fd5b818501915085601f830112610c9f57600080fd5b813581811115610cae57600080fd5b8660208260051b8501011115610cc357600080fd5b60209290920196919550909350505050565b600080600060608486031215610cea57600080fd5b8335610cf581610af7565b9250610d0360208501610b0c565b9150604084013590509250925092565b60008060008060808587031215610d2957600080fd5b8435610d3481610af7565b9350610d4260208601610b0c565b9250610d5060408601610b0c565b9396929550929360600135925050565b600060208284031215610d7257600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dd957600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea264697066735822122073763b5180077a8bc6ac9f9f13d1ff53a2202a0e325b92566fd1ff7df689217864736f6c63430008180033","nonce":16,"gas_used":852501},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xd0215","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x3b59b970eb7bc45e575508d12aeb8864040232a3ea40fa4948cbb06dda6d03ec","block_number":10},{"info":{"transaction_hash":"0x3b5c19befab3a5ac976428f286d109add2b0071137c26fc02d8663f2948914bc","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":22933,"gas_limit":43405,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":15635,"gas_limit":35581,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":1,"children":[3],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":9660,"gas_limit":29185,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":2,"children":[],"idx":3,"trace":{"depth":3,"success":true,"caller":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","address":"0x9a676e781a523b5d0c0e43731313a708cb607508","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":2362,"gas_limit":21583,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c943713","0x0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8"],"data":"0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x","nonce":50,"gas_used":44265},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4a0f28","logs":[{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0xa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c943713","0x0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8"],"data":"0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000001000000000000400000000000000000000000000000000000000000000000000000800000000000000000000000000000240000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000001000000020000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xfd88461004175c7f26b13da9021a7bad73662b8e53f8ff5d43d61cbbe580d878","block_number":8},{"info":{"transaction_hash":"0x0407695da91c821753dcf7e68b5284a95c603e466b110cce53db7254dd1f1278","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":4364,"gas_limit":14198,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":32,"gas_used":25796},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x64c4","logs":[{"address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x02089c70710a7a686754a8673643120dde00518f003fc3b59948c90ed81cb643","block_number":21},{"info":{"transaction_hash":"0xf620e3aedc51b416c90ae3cc98a7e3949be448d12132cc071e39f0c21bb4f321","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0xde0b6b3a7640000","data":"0x4223d5510000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0","output":"0x","gas_used":31673,"gas_limit":32021,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0xde0b6b3a7640000","data":"0x4223d5510000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0","output":"0x","gas_used":24378,"gas_limit":24378,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x0ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0","0x0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0"],"data":"0x0000000000000000000000000000000000000000000000000de0b6b3a7640000"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x","nonce":57,"gas_used":53105},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xcf71","logs":[{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0x0ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0","0x0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0"],"data":"0x0000000000000000000000000000000000000000000000000de0b6b3a7640000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000010000000000000000000000000000008000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000100001000"},"block_hash":"0x31345c9669d1c1b957be0e1989f225680cf946599b49dc7a1007218ae418831a","block_number":14},{"info":{"transaction_hash":"0x27ff860d43af616478665f6b796d139e3ccaa80150ea832e0abe67638df48560","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x09635f643e140090a9a8dcd712ed6285858cebef","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x09635f643e140090a9a8dcd712ed6285858cebef","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b50610528806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047c565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d1565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b9150604084013590509250925092565b60006020828403121561048e57600080fd5b610497826103fa565b9392505050565b600080604083850312156104b157600080fd5b6104ba836103fa565b91506104c8602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122020d7e8b980aa0c2b46b040d513e5ae1f916c9610cc2589a32d3485f141c4d93e64736f6c63430008180033","output":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047c565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d1565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b9150604084013590509250925092565b60006020828403121561048e57600080fd5b610497826103fa565b9392505050565b600080604083850312156104b157600080fd5b6104ba836103fa565b91506104c8602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122020d7e8b980aa0c2b46b040d513e5ae1f916c9610cc2589a32d3485f141c4d93e64736f6c63430008180033","gas_used":264306,"gas_limit":365714,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047c565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d1565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b9150604084013590509250925092565b60006020828403121561048e57600080fd5b610497826103fa565b9392505050565b600080604083850312156104b157600080fd5b6104ba836103fa565b91506104c8602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122020d7e8b980aa0c2b46b040d513e5ae1f916c9610cc2589a32d3485f141c4d93e64736f6c63430008180033","nonce":27,"gas_used":338400},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x529e0","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x76fa2a4c141ce999c8fca25f6cdd9760ea421baefe3e3b64a8bfd31c0e350abc","block_number":17},{"info":{"transaction_hash":"0x035e03a62da66d8142ad00924a2580943aa598f94e17ea62d19cbf8b0d149f5d","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x998abeb3e57409262ae5b751f60747921b33613e","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x998abeb3e57409262ae5b751f60747921b33613e","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":39,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1a3a51","logs":[{"address":"0x998abeb3e57409262ae5b751f60747921b33613e","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x998abeb3e57409262ae5b751f60747921b33613e","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00002000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000080400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000100000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x8538a23d64a81d55ad80331969daab75b21ea3c98cd48b108e431c078e92200d","block_number":4},{"info":{"transaction_hash":"0x6915eb414cbf032995fc0585e67953f7007bd585042661bfff519ed442f40c91","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd8200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":141257,"gas_limit":204060,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd8200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084cf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":134873,"gas_limit":194635,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd82"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xcf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":121894,"gas_limit":179035,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":20,"gas_used":164733},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x50ca1","logs":[{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd82"],"data":"0x"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000000000000100000400000000000000000000000000000000400000002000001000000000010000000000000000000000000020000000000000100800808000004000000000000000000000000400000000100000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000008000000000000000000100020400000200000000000040000000000002028000000000000000020000000000000000000000000000000000000000001080000000100000000400000"},"block_hash":"0xdc661eb62f3503115532a4a4ebf9dbb29830a7f54b0435e7188a418d1ac7faf1","block_number":12},{"info":{"transaction_hash":"0xcb39bb5111342c9b6c2f3bc3007f67a86aa7cbd10b6ab9031dd81ff5a35d1026","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":118727,"gas_limit":172909,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0xc5a5c42992decbae36851359345fe25997f5c42d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":112343,"gas_limit":163971,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xc5a5c42992decbae36851359345fe25997f5c42d","address":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","output":"0x","gas_used":99364,"gas_limit":148850,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xf97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":29,"gas_used":142119},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xae942","logs":[{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f"],"data":"0x"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xf97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400004000000000000000000000000000400000000000000000000000000000000000000000100100004000000000000000000000000000000000400000002000000000000000000000000000000040000000000000000000000000004800000000004000000000000000000000000000000000300000002000040000000000400000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000040020480000000000000000040000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000400000"},"block_hash":"0x5dae897ded4889dc65ca7023d8497e57d010b51b7abde53c24f26b3485eacd81","block_number":18},{"info":{"transaction_hash":"0xe6912062264ab60c930b10c03ab097ecc60709d30f3cce8135383cce209f8e71","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":38666,"gas_limit":66779,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":31344,"gas_limit":58566,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x","nonce":30,"gas_used":60786},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xed72","logs":[{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000000000000000000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000002000000000000000000000000000000000000000000000000000000100000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000001000000000100000000000000"},"block_hash":"0x607eb9efb50db52a9d3d96804c25e1b98dc83a5e2438c1658ffebe9f7c9193fb","block_number":19},{"info":{"transaction_hash":"0xb946c97ddc73b65fa887bf081d4878f2e4e015f758d80c98f9020c8c0c7fd93e","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x99bba657f2bbc93c02d617f8ba121cb8fc104acf","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x99bba657f2bbc93c02d617f8ba121cb8fc104acf","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60c06040523480156200001157600080fd5b506040516200389f3803806200389f833981016040819052620000349162000065565b6001600160a01b0391821660a05216608052620000a4565b6001600160a01b03811681146200006257600080fd5b50565b600080604083850312156200007957600080fd5b825162000086816200004c565b602084015190925062000099816200004c565b809150509250929050565b60805160a051613796620001096000396000818161037a015281816106340152818161096701528181610ccf015281816110f0015281816116d0015281816117d2015281816118eb0152611cad0152600081816105290152611e6e01526137966000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d85565b610959565b604051610217929190612e25565b6102b56102b0366004612e4a565b610c15565b6040516102179190612e76565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4a565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4a565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f7f565b610ccd565b61035d610358366004612d85565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc36600461303b565b611240565b604051610217919061308d565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130cb565b61152d565b60405161021791906130fe565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461314a565b6116ce565b61027f610495366004613174565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d1366004613240565b6118e9565b6102546104e436600461328d565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132c9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b610254610559366004613305565b611ac3565b61041461056c366004612e4a565b611b58565b61025461057f3660046132c9565b611c41565b61027f610592366004613347565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133a4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b491906133f5565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613412565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133a4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561348e565b905060200201602081019061084a91906134a4565b8289898481811061085d5761085d61348e565b90506020020135815481106108745761087461348e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61348e565b90506020020135815481106108f4576108f461348e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61348e565b905060200201602081019061093091906134a4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109a45760405162461bcd60e51b8152600401610611906134bf565b6000836001600160401b038111156109be576109be612eee565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612eee565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61348e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361348e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61348e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f91906133f5565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613412565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133a4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61348e565b602002602001015181548110610ea357610ea361348e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161348e565b602002602001015181548110610f1957610f1961348e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613547565b81548110610f6957610f6961348e565b9060005260206000200183878381518110610f8657610f8661348e565b602002602001015181548110610f9e57610f9e61348e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161355a565b6000828152602081208201600019908101919091550190558154829061101990600190613547565b815481106110295761102961348e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61348e565b6020026020010151815481106110725761107261348e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061355a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461112d5760405162461bcd60e51b8152600401610611906134bf565b6000805b8381101561123657600085858381811061114d5761114d61348e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612eee565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761348e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61348e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613547565b6114699190613547565b815481106114795761147961348e565b60009182526020909120015463ffffffff16116114d757600161149c8284613547565b6114a69190613547565b8585815181106114b8576114b861348e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61348e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175091906133f5565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613412565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133a4565b6117c283836123f7565b505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461180f5760405162461bcd60e51b8152600401610611906134bf565b60005b818110156118e357600083838381811061182e5761182e61348e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b91906133f5565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613412565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133a4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613547565b81548110611a8c57611a8c61348e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613547565b81548110611bec57611bec61348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61348e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611cea5760405162461bcd60e51b8152600401610611906134bf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692639004134792611ea1928c9201613570565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135d1565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761348e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561348e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61348e565b6020026020010151611fae9190613661565b611fb89190613678565b611fc2908661369a565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613547565b815481106120fe576120fe61348e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613547565b815481106122b4576122b461348e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374183398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136ba565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374183398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136ba565b811015612646578482815181106125895761258961348e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861348e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61348e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661348e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61348e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261348e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61348e565b60200260200101516000015186848151811061285d5761285d61348e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613547565b81548110612a6c57612a6c61348e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613547565b925050506114ee565b80612aa1816136cd565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136e4565b600080821215612baa57612b9982613704565b612ba39084613720565b9050610cae565b612ba3828461369a565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b0380821115612d0157600080fd5b612d0d89838a01612c80565b90965094506040880135915080821115612d2657600080fd5b50612d3388828901612c80565b969995985093965092949392505050565b60008083601f840112612d5657600080fd5b5081356001600160401b03811115612d6d57600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9b57600080fd5b8435612da681612c31565b93506020850135925060408501356001600160401b03811115612dc857600080fd5b612dd487828801612d44565b95989497509550505050565b60008151808452602080850194506020840160005b83811015612e1a5781516001600160601b031687529582019590820190600101612df5565b509495945050505050565b604081526000612e386040830185612de0565b82810360208401526123ee8185612de0565b60008060408385031215612e5d57600080fd5b82359150612e6d60208401612bb4565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257612ecf83855163ffffffff808251168352806020830151166020840152506001600160601b0360408201511660408301525050565b9284019260609290920191600101612e92565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2657612f26612eee565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5457612f54612eee565b604052919050565b60006001600160401b03821115612f7557612f75612eee565b5060051b60200190565b60008060408385031215612f9257600080fd5b612f9b83612bb4565b91506020808401356001600160401b03811115612fb757600080fd5b8401601f81018613612fc857600080fd5b8035612fdb612fd682612f5c565b612f2c565b81815260059190911b82018301908381019088831115612ffa57600080fd5b928401925b8284101561301857833582529284019290840190612fff565b80955050505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305057600080fd5b61305984613027565b925060208401356001600160401b0381111561307457600080fd5b61308086828701612d44565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257835163ffffffff16835292840192918401916001016130a9565b6000806000606084860312156130e057600080fd5b6130e984612bb4565b95602085013595506040909401359392505050565b815163ffffffff9081168252602080840151909116908201526040808301516001600160601b03169082015260608101610cae565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561315d57600080fd5b61316683612bb4565b9150612e6d60208401613133565b60008060006040848603121561318957600080fd5b8335925060208401356001600160401b0381111561307457600080fd5b600082601f8301126131b757600080fd5b813560206131c7612fd683612f5c565b82815260069290921b840181019181810190868411156131e657600080fd5b8286015b8481101561323557604081890312156132035760008081fd5b61320b612f04565b813561321681612c31565b8152613223828601613133565b818601528352918301916040016131ea565b509695505050505050565b6000806040838503121561325357600080fd5b61325c83612bb4565b915060208301356001600160401b0381111561327757600080fd5b613283858286016131a6565b9150509250929050565b6000806000606084860312156132a257600080fd5b6132ab84612bb4565b92506132b960208501613027565b9150604084013590509250925092565b6000806000606084860312156132de57600080fd5b833592506132ee60208501612bb4565b91506132fc60408501613027565b90509250925092565b6000806000806080858703121561331b57600080fd5b61332485612bb4565b935061333260208601613027565b93969395505050506040820135916060013590565b60008060006060848603121561335c57600080fd5b61336584612bb4565b925061337360208501613133565b915060408401356001600160401b0381111561338e57600080fd5b61339a868287016131a6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561340757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134b657600080fd5b6114ee82613133565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613531565b634e487b7160e01b600052603160045260246000fd5b60006040820160018060a01b038086168452602060406020860152828654808552606087019150876000526020600020945060005b818110156135c35785548516835260019586019592840192016135a5565b509098975050505050505050565b600060208083850312156135e457600080fd5b82516001600160401b038111156135fa57600080fd5b8301601f8101851361360b57600080fd5b8051613619612fd682612f5c565b81815260059190911b8201830190838101908783111561363857600080fd5b928401925b828410156136565783518252928401929084019061363d565b979650505050505050565b8082028115828204841417610cae57610cae613531565b60008261369557634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b0381811683821601908082111561062b5761062b613531565b80820180821115610cae57610cae613531565b6000816136dc576136dc613531565b506000190190565b818103600083128015838313168383128216171561062b5761062b613531565b6000600160ff1b820161371957613719613531565b5060000390565b6001600160601b0382811682821603908082111561062b5761062b61353156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a264697066735822122086a228217be3aa4346ddc514699a0ca7893ec8b64cbf2023e3b1369fe2efcf1164736f6c63430008180033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d85565b610959565b604051610217929190612e25565b6102b56102b0366004612e4a565b610c15565b6040516102179190612e76565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4a565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4a565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f7f565b610ccd565b61035d610358366004612d85565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc36600461303b565b611240565b604051610217919061308d565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130cb565b61152d565b60405161021791906130fe565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461314a565b6116ce565b61027f610495366004613174565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d1366004613240565b6118e9565b6102546104e436600461328d565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132c9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b610254610559366004613305565b611ac3565b61041461056c366004612e4a565b611b58565b61025461057f3660046132c9565b611c41565b61027f610592366004613347565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133a4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b491906133f5565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613412565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133a4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561348e565b905060200201602081019061084a91906134a4565b8289898481811061085d5761085d61348e565b90506020020135815481106108745761087461348e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61348e565b90506020020135815481106108f4576108f461348e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61348e565b905060200201602081019061093091906134a4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146109a45760405162461bcd60e51b8152600401610611906134bf565b6000836001600160401b038111156109be576109be612eee565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612eee565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61348e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361348e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61348e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f91906133f5565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613412565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133a4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61348e565b602002602001015181548110610ea357610ea361348e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161348e565b602002602001015181548110610f1957610f1961348e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613547565b81548110610f6957610f6961348e565b9060005260206000200183878381518110610f8657610f8661348e565b602002602001015181548110610f9e57610f9e61348e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161355a565b6000828152602081208201600019908101919091550190558154829061101990600190613547565b815481106110295761102961348e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61348e565b6020026020010151815481106110725761107261348e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061355a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461112d5760405162461bcd60e51b8152600401610611906134bf565b6000805b8381101561123657600085858381811061114d5761114d61348e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612eee565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761348e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61348e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613547565b6114699190613547565b815481106114795761147961348e565b60009182526020909120015463ffffffff16116114d757600161149c8284613547565b6114a69190613547565b8585815181106114b8576114b861348e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61348e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175091906133f5565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613412565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133a4565b6117c283836123f7565b505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461180f5760405162461bcd60e51b8152600401610611906134bf565b60005b818110156118e357600083838381811061182e5761182e61348e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b91906133f5565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613412565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133a4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613547565b81548110611a8c57611a8c61348e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613547565b81548110611bec57611bec61348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61348e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614611cea5760405162461bcd60e51b8152600401610611906134bf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91692639004134792611ea1928c9201613570565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135d1565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761348e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561348e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61348e565b6020026020010151611fae9190613661565b611fb89190613678565b611fc2908661369a565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613547565b815481106120fe576120fe61348e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613547565b815481106122b4576122b461348e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374183398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136ba565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374183398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136ba565b811015612646578482815181106125895761258961348e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861348e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61348e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661348e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61348e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261348e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61348e565b60200260200101516000015186848151811061285d5761285d61348e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613547565b81548110612a6c57612a6c61348e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613547565b925050506114ee565b80612aa1816136cd565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136e4565b600080821215612baa57612b9982613704565b612ba39084613720565b9050610cae565b612ba3828461369a565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b0380821115612d0157600080fd5b612d0d89838a01612c80565b90965094506040880135915080821115612d2657600080fd5b50612d3388828901612c80565b969995985093965092949392505050565b60008083601f840112612d5657600080fd5b5081356001600160401b03811115612d6d57600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9b57600080fd5b8435612da681612c31565b93506020850135925060408501356001600160401b03811115612dc857600080fd5b612dd487828801612d44565b95989497509550505050565b60008151808452602080850194506020840160005b83811015612e1a5781516001600160601b031687529582019590820190600101612df5565b509495945050505050565b604081526000612e386040830185612de0565b82810360208401526123ee8185612de0565b60008060408385031215612e5d57600080fd5b82359150612e6d60208401612bb4565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257612ecf83855163ffffffff808251168352806020830151166020840152506001600160601b0360408201511660408301525050565b9284019260609290920191600101612e92565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2657612f26612eee565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5457612f54612eee565b604052919050565b60006001600160401b03821115612f7557612f75612eee565b5060051b60200190565b60008060408385031215612f9257600080fd5b612f9b83612bb4565b91506020808401356001600160401b03811115612fb757600080fd5b8401601f81018613612fc857600080fd5b8035612fdb612fd682612f5c565b612f2c565b81815260059190911b82018301908381019088831115612ffa57600080fd5b928401925b8284101561301857833582529284019290840190612fff565b80955050505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305057600080fd5b61305984613027565b925060208401356001600160401b0381111561307457600080fd5b61308086828701612d44565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257835163ffffffff16835292840192918401916001016130a9565b6000806000606084860312156130e057600080fd5b6130e984612bb4565b95602085013595506040909401359392505050565b815163ffffffff9081168252602080840151909116908201526040808301516001600160601b03169082015260608101610cae565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561315d57600080fd5b61316683612bb4565b9150612e6d60208401613133565b60008060006040848603121561318957600080fd5b8335925060208401356001600160401b0381111561307457600080fd5b600082601f8301126131b757600080fd5b813560206131c7612fd683612f5c565b82815260069290921b840181019181810190868411156131e657600080fd5b8286015b8481101561323557604081890312156132035760008081fd5b61320b612f04565b813561321681612c31565b8152613223828601613133565b818601528352918301916040016131ea565b509695505050505050565b6000806040838503121561325357600080fd5b61325c83612bb4565b915060208301356001600160401b0381111561327757600080fd5b613283858286016131a6565b9150509250929050565b6000806000606084860312156132a257600080fd5b6132ab84612bb4565b92506132b960208501613027565b9150604084013590509250925092565b6000806000606084860312156132de57600080fd5b833592506132ee60208501612bb4565b91506132fc60408501613027565b90509250925092565b6000806000806080858703121561331b57600080fd5b61332485612bb4565b935061333260208601613027565b93969395505050506040820135916060013590565b60008060006060848603121561335c57600080fd5b61336584612bb4565b925061337360208501613133565b915060408401356001600160401b0381111561338e57600080fd5b61339a868287016131a6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561340757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134b657600080fd5b6114ee82613133565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613531565b634e487b7160e01b600052603160045260246000fd5b60006040820160018060a01b038086168452602060406020860152828654808552606087019150876000526020600020945060005b818110156135c35785548516835260019586019592840192016135a5565b509098975050505050505050565b600060208083850312156135e457600080fd5b82516001600160401b038111156135fa57600080fd5b8301601f8101851361360b57600080fd5b8051613619612fd682612f5c565b81815260059190911b8201830190838101908783111561363857600080fd5b928401925b828410156136565783518252928401929084019061363d565b979650505050505050565b8082028115828204841417610cae57610cae613531565b60008261369557634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b0381811683821601908082111561062b5761062b613531565b80820180821115610cae57610cae613531565b6000816136dc576136dc613531565b506000190190565b818103600083128015838313168383128216171561062b5761062b613531565b6000600160ff1b820161371957613719613531565b5060000390565b6001600160601b0382811682821603908082111561062b5761062b61353156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a264697066735822122086a228217be3aa4346ddc514699a0ca7893ec8b64cbf2023e3b1369fe2efcf1164736f6c63430008180033","gas_used":2849633,"gas_limit":3786717,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d85565b610959565b604051610217929190612e25565b6102b56102b0366004612e4a565b610c15565b6040516102179190612e76565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4a565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4a565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f7f565b610ccd565b61035d610358366004612d85565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc36600461303b565b611240565b604051610217919061308d565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130cb565b61152d565b60405161021791906130fe565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461314a565b6116ce565b61027f610495366004613174565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d1366004613240565b6118e9565b6102546104e436600461328d565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132c9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b610254610559366004613305565b611ac3565b61041461056c366004612e4a565b611b58565b61025461057f3660046132c9565b611c41565b61027f610592366004613347565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133a4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b491906133f5565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613412565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133a4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561348e565b905060200201602081019061084a91906134a4565b8289898481811061085d5761085d61348e565b90506020020135815481106108745761087461348e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61348e565b90506020020135815481106108f4576108f461348e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61348e565b905060200201602081019061093091906134a4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146109a45760405162461bcd60e51b8152600401610611906134bf565b6000836001600160401b038111156109be576109be612eee565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612eee565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61348e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361348e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61348e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f91906133f5565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613412565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133a4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61348e565b602002602001015181548110610ea357610ea361348e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161348e565b602002602001015181548110610f1957610f1961348e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613547565b81548110610f6957610f6961348e565b9060005260206000200183878381518110610f8657610f8661348e565b602002602001015181548110610f9e57610f9e61348e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161355a565b6000828152602081208201600019908101919091550190558154829061101990600190613547565b815481106110295761102961348e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61348e565b6020026020010151815481106110725761107261348e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061355a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461112d5760405162461bcd60e51b8152600401610611906134bf565b6000805b8381101561123657600085858381811061114d5761114d61348e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612eee565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761348e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61348e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613547565b6114699190613547565b815481106114795761147961348e565b60009182526020909120015463ffffffff16116114d757600161149c8284613547565b6114a69190613547565b8585815181106114b8576114b861348e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61348e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175091906133f5565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613412565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133a4565b6117c283836123f7565b505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461180f5760405162461bcd60e51b8152600401610611906134bf565b60005b818110156118e357600083838381811061182e5761182e61348e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b91906133f5565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613412565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133a4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613547565b81548110611a8c57611a8c61348e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613547565b81548110611bec57611bec61348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61348e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614611cea5760405162461bcd60e51b8152600401610611906134bf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91692639004134792611ea1928c9201613570565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135d1565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761348e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561348e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61348e565b6020026020010151611fae9190613661565b611fb89190613678565b611fc2908661369a565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613547565b815481106120fe576120fe61348e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613547565b815481106122b4576122b461348e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374183398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136ba565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374183398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136ba565b811015612646578482815181106125895761258961348e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861348e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61348e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661348e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61348e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261348e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61348e565b60200260200101516000015186848151811061285d5761285d61348e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613547565b81548110612a6c57612a6c61348e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613547565b925050506114ee565b80612aa1816136cd565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136e4565b600080821215612baa57612b9982613704565b612ba39084613720565b9050610cae565b612ba3828461369a565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b0380821115612d0157600080fd5b612d0d89838a01612c80565b90965094506040880135915080821115612d2657600080fd5b50612d3388828901612c80565b969995985093965092949392505050565b60008083601f840112612d5657600080fd5b5081356001600160401b03811115612d6d57600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9b57600080fd5b8435612da681612c31565b93506020850135925060408501356001600160401b03811115612dc857600080fd5b612dd487828801612d44565b95989497509550505050565b60008151808452602080850194506020840160005b83811015612e1a5781516001600160601b031687529582019590820190600101612df5565b509495945050505050565b604081526000612e386040830185612de0565b82810360208401526123ee8185612de0565b60008060408385031215612e5d57600080fd5b82359150612e6d60208401612bb4565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257612ecf83855163ffffffff808251168352806020830151166020840152506001600160601b0360408201511660408301525050565b9284019260609290920191600101612e92565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2657612f26612eee565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5457612f54612eee565b604052919050565b60006001600160401b03821115612f7557612f75612eee565b5060051b60200190565b60008060408385031215612f9257600080fd5b612f9b83612bb4565b91506020808401356001600160401b03811115612fb757600080fd5b8401601f81018613612fc857600080fd5b8035612fdb612fd682612f5c565b612f2c565b81815260059190911b82018301908381019088831115612ffa57600080fd5b928401925b8284101561301857833582529284019290840190612fff565b80955050505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305057600080fd5b61305984613027565b925060208401356001600160401b0381111561307457600080fd5b61308086828701612d44565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257835163ffffffff16835292840192918401916001016130a9565b6000806000606084860312156130e057600080fd5b6130e984612bb4565b95602085013595506040909401359392505050565b815163ffffffff9081168252602080840151909116908201526040808301516001600160601b03169082015260608101610cae565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561315d57600080fd5b61316683612bb4565b9150612e6d60208401613133565b60008060006040848603121561318957600080fd5b8335925060208401356001600160401b0381111561307457600080fd5b600082601f8301126131b757600080fd5b813560206131c7612fd683612f5c565b82815260069290921b840181019181810190868411156131e657600080fd5b8286015b8481101561323557604081890312156132035760008081fd5b61320b612f04565b813561321681612c31565b8152613223828601613133565b818601528352918301916040016131ea565b509695505050505050565b6000806040838503121561325357600080fd5b61325c83612bb4565b915060208301356001600160401b0381111561327757600080fd5b613283858286016131a6565b9150509250929050565b6000806000606084860312156132a257600080fd5b6132ab84612bb4565b92506132b960208501613027565b9150604084013590509250925092565b6000806000606084860312156132de57600080fd5b833592506132ee60208501612bb4565b91506132fc60408501613027565b90509250925092565b6000806000806080858703121561331b57600080fd5b61332485612bb4565b935061333260208601613027565b93969395505050506040820135916060013590565b60008060006060848603121561335c57600080fd5b61336584612bb4565b925061337360208501613133565b915060408401356001600160401b0381111561338e57600080fd5b61339a868287016131a6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561340757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134b657600080fd5b6114ee82613133565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613531565b634e487b7160e01b600052603160045260246000fd5b60006040820160018060a01b038086168452602060406020860152828654808552606087019150876000526020600020945060005b818110156135c35785548516835260019586019592840192016135a5565b509098975050505050505050565b600060208083850312156135e457600080fd5b82516001600160401b038111156135fa57600080fd5b8301601f8101851361360b57600080fd5b8051613619612fd682612f5c565b81815260059190911b8201830190838101908783111561363857600080fd5b928401925b828410156136565783518252928401929084019061363d565b979650505050505050565b8082028115828204841417610cae57610cae613531565b60008261369557634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b0381811683821601908082111561062b5761062b613531565b80820180821115610cae57610cae613531565b6000816136dc576136dc613531565b506000190190565b818103600083128015838313168383128216171561062b5761062b613531565b6000600160ff1b820161371957613719613531565b5060000390565b6001600160601b0382811682821603908082111561062b5761062b61353156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a264697066735822122086a228217be3aa4346ddc514699a0ca7893ec8b64cbf2023e3b1369fe2efcf1164736f6c63430008180033","nonce":42,"gas_used":3127559},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x2fb907","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x0278ea2b38f9769073f11d2038144ac3be14552d0c813cc12085d466e172f5f3","block_number":6},{"info":{"transaction_hash":"0xf1758982dc7bf99172677ea91a0550c18e81f94f596a492e4a70e35aca4d7a0f","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a06040523480156200001157600080fd5b5060405162001d4038038062001d40833981016040819052620000349162000116565b6001600160a01b038116608052806200004c62000054565b505062000148565b600054610100900460ff1615620000c15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000114576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012957600080fd5b81516001600160a01b03811681146200014157600080fd5b9392505050565b608051611bc76200017960003960008181610216015281816107a801528181610b490152610c130152611bc76000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000000000000000000000000000000000000000000081565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220157b8fd2af6cc8480450ce674c8687dcbdc3c3a46aa68acd19633d494b70b35b64736f6c63430008180033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9","output":"0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220157b8fd2af6cc8480450ce674c8687dcbdc3c3a46aa68acd19633d494b70b35b64736f6c63430008180033","gas_used":1447443,"gas_limit":1931988,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220157b8fd2af6cc8480450ce674c8687dcbdc3c3a46aa68acd19633d494b70b35b64736f6c63430008180033","nonce":26,"gas_used":1617189},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x18ad25","logs":[{"address":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000001000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000200000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xaa8cafe1e3a77a900e4c02e1008708ebeb53ed2b67bc69ab5ecdbc2cb3c12764","block_number":16},{"info":{"transaction_hash":"0x9d7618bb7ef673579140052a4a7c85411d535c358070cafc44f12ba93b41d504","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6101206040523480156200001257600080fd5b50604051620034a9380380620034a983398101604081905262000035916200014b565b6001600160a01b0380861660805280851660a05280841660c05280831660e0528116610100526200006562000070565b5050505050620001cb565b600054610100900460ff1615620000dd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000130576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200014857600080fd5b50565b600080600080600060a086880312156200016457600080fd5b8551620001718162000132565b6020870151909550620001848162000132565b6040870151909450620001978162000132565b6060870151909350620001aa8162000132565b6080870151909250620001bd8162000132565b809150509295509295909350565b60805160a05160c05160e051610100516132686200024160003960008181610636015281816106e001528181610b0e015281816113ea0152818161187e015261196e01526000610542015260006102e601526000818161027a01528181611369015261203c0152600061041401526132686000f3fe6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125b8565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107265760405162461bcd60e51b815260040161071d90612609565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca008361267d565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126a7565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f3833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126cf565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126ec565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a309190612736565b610a4c5760405162461bcd60e51b815260040161071d90612758565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b4b5760405162461bcd60e51b815260040161071d90612609565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321383398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321383398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca008261267d565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a0565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127bc565b9250846001600160a01b03166000805160206131f383398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126a7565b90915550506040518381526001600160a01b038616906000805160206131f38339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c79190612736565b6110e35760405162461bcd60e51b815260040161071d90612758565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127f8565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128e561090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612862565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114275760405162461bcd60e51b815260040161071d90612609565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca008261267d565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b6020526040812054611545908390612877565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca008361289e565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126a7565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a0565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f3833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b2565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126cf565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126ec565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a0565b905061090b565b611e408383612877565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128cb565b9091555060408051610940810190915261090e8082526000916120a491839133916128e56020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612862565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff8082111561257457600080fd5b61258089838a016124fb565b9097509550602088013591508082111561259957600080fd5b506125a6888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125ce57600080fd5b84356125d9816123f6565b935060208501356125e9816123f6565b925060408501356125f9816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261268c5761268c612667565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126c7576126c7612691565b505092915050565b6000602082840312156126e157600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274857600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127b5576127b5612691565b5060000390565b8181038181111561090b5761090b612691565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061280c6060830187896127cf565b828103602084015261281f8186886127cf565b9150508260408301529695505050505050565b6000815160005b818110156128535760208185018101518683015201612839565b50600093019283525090919050565b60006123ee6128718386612832565b84612832565b818103600083128015838313168383128216171561289757612897612691565b5092915050565b6000826128ad576128ad612667565b500790565b6000602082840312156128c457600080fd5b5051919050565b6000600182016128dd576128dd612691565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220517f086e259f6d4f92497674fa8b87966eef35c1226b2e6369f2a0bdacf2836964736f6c634300081800330000000000000000000000004242424242424242424242424242424242424242000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125b8565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d90612609565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca008361267d565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126a7565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f3833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126cf565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126ec565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a309190612736565b610a4c5760405162461bcd60e51b815260040161071d90612758565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d90612609565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321383398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321383398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca008261267d565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a0565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127bc565b9250846001600160a01b03166000805160206131f383398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126a7565b90915550506040518381526001600160a01b038616906000805160206131f38339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c79190612736565b6110e35760405162461bcd60e51b815260040161071d90612758565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127f8565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128e561090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612862565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d90612609565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca008261267d565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b6020526040812054611545908390612877565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca008361289e565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126a7565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a0565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f3833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b2565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126cf565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126ec565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a0565b905061090b565b611e408383612877565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128cb565b9091555060408051610940810190915261090e8082526000916120a491839133916128e56020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612862565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff8082111561257457600080fd5b61258089838a016124fb565b9097509550602088013591508082111561259957600080fd5b506125a6888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125ce57600080fd5b84356125d9816123f6565b935060208501356125e9816123f6565b925060408501356125f9816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261268c5761268c612667565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126c7576126c7612691565b505092915050565b6000602082840312156126e157600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274857600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127b5576127b5612691565b5060000390565b8181038181111561090b5761090b612691565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061280c6060830187896127cf565b828103602084015261281f8186886127cf565b9150508260408301529695505050505050565b6000815160005b818110156128535760208185018101518683015201612839565b50600093019283525090919050565b60006123ee6128718386612832565b84612832565b818103600083128015838313168383128216171561289757612897612691565b5092915050565b6000826128ad576128ad612667565b500790565b6000602082840312156128c457600080fd5b5051919050565b6000600182016128dd576128dd612691565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220517f086e259f6d4f92497674fa8b87966eef35c1226b2e6369f2a0bdacf2836964736f6c63430008180033","gas_used":2607978,"gas_limit":3467863,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125b8565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d90612609565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca008361267d565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126a7565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f3833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126cf565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126ec565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a309190612736565b610a4c5760405162461bcd60e51b815260040161071d90612758565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d90612609565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321383398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321383398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca008261267d565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321383398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a0565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127bc565b9250846001600160a01b03166000805160206131f383398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126a7565b90915550506040518381526001600160a01b038616906000805160206131f38339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c79190612736565b6110e35760405162461bcd60e51b815260040161071d90612758565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127f8565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128e561090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612862565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d90612609565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca008261267d565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b6020526040812054611545908390612877565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca008361289e565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126a7565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a0565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f3833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b2565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126cf565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126ec565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a0565b905061090b565b611e408383612877565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128cb565b9091555060408051610940810190915261090e8082526000916120a491839133916128e56020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612862565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff8082111561257457600080fd5b61258089838a016124fb565b9097509550602088013591508082111561259957600080fd5b506125a6888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125ce57600080fd5b84356125d9816123f6565b935060208501356125e9816123f6565b925060408501356125f9816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261268c5761268c612667565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126c7576126c7612691565b505092915050565b6000602082840312156126e157600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274857600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127b5576127b5612691565b5060000390565b8181038181111561090b5761090b612691565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061280c6060830187896127cf565b828103602084015261281f8186886127cf565b9150508260408301529695505050505050565b6000815160005b818110156128535760208185018101518683015201612839565b50600093019283525090919050565b60006123ee6128718386612832565b84612832565b818103600083128015838313168383128216171561289757612897612691565b5092915050565b6000826128ad576128ad612667565b500790565b6000602082840312156128c457600080fd5b5051919050565b6000600182016128dd576128dd612691565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220517f086e259f6d4f92497674fa8b87966eef35c1226b2e6369f2a0bdacf2836964736f6c63430008180033","nonce":17,"gas_used":2869984},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x2bcae0","logs":[{"address":"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000001000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x78ae1dc60d5a6304aa339e8aaf1ce85caa9087f90e81ead058aca2a258c890bd","block_number":11},{"info":{"transaction_hash":"0xc55bc6448216d5fabf802cafda5597277ac40a0a4254523971756c67ff9fb2ee","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x99a88ec4000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3600000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49","output":"0x","gas_used":17021,"gas_limit":31821,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0xf5059a5d33d5853360d16c683c16e67980206f36","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x3659cfe600000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49","output":"0x","gas_used":11547,"gas_limit":25979,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":41,"gas_used":38821},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x113588","logs":[{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000800010000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000400000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x8a0b101ff5da236bc23c5fed4a0a05ea37bba048eebc6889bd7d468e4a46dec4","block_number":5},{"info":{"transaction_hash":"0x3da35e0d84e5fe1be7f74d2888bf3c992f85e98792e5ac0b47f43e8cc504f7b0","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x9a676e781a523b5d0c0e43731313a708cb607508","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9a676e781a523b5d0c0e43731313a708cb607508","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60c06040523480156200001157600080fd5b5060405162001f6438038062001f64833981016040819052620000349162000118565b6001600160a01b0381166080526200004b62000056565b504660a0526200014a565b600054610100900460ff1615620000c35760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000116576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012b57600080fd5b81516001600160a01b03811681146200014357600080fd5b9392505050565b60805160a051611ded620001776000396000610ea501526000818161032401526109810152611ded6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b3d565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b83565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000000000000000000000000000000000000000000081565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611bf5565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c12565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c5c565b6104cb5760405162461bcd60e51b815260040161042e90611c7e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c5c565b6107345760405162461bcd60e51b815260040161042e90611c7e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611d988339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c5c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cc6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f00000000000000000000000000000000000000000000000000000000000000004603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611bf5565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c12565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611cf5565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d4c565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d76565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b915060208381013567ffffffffffffffff80821115611a9257600080fd5b9085019060608288031215611aa657600080fd5b611aae6119fc565b823582811115611abd57600080fd5b8301601f81018913611ace57600080fd5b803583811115611ae057611ae06119e6565b611af2601f8201601f19168701611a25565b93508084528986828401011115611b0857600080fd5b808683018786013760008682860101525050818152838301358482015260408301356040820152809450505050509250929050565b60008060008060808587031215611b5357600080fd5b8435611b5e8161188d565b93506020850135611b6e8161188d565b93969395505050506040820135916060013590565b60008060208385031215611b9657600080fd5b823567ffffffffffffffff80821115611bae57600080fd5b818501915085601f830112611bc257600080fd5b813581811115611bd157600080fd5b866020828501011115611be357600080fd5b60209290920196919550909350505050565b600060208284031215611c0757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c6e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b8281526000602060406020840152835180604085015260005b81811015611d2a57858101830151858201606001528201611d0e565b506000606082860101526060601f19601f830116850101925050509392505050565b600060208284031215611d5e57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a264697066735822122016d51116de2d4e6ebc6b9dfa2dada06d1f6e51f6dc472774de5d172aa09dda6d64736f6c63430008180033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b3d565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b83565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611bf5565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c12565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c5c565b6104cb5760405162461bcd60e51b815260040161042e90611c7e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c5c565b6107345760405162461bcd60e51b815260040161042e90611c7e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611d988339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c5c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cc6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611bf5565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c12565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611cf5565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d4c565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d76565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b915060208381013567ffffffffffffffff80821115611a9257600080fd5b9085019060608288031215611aa657600080fd5b611aae6119fc565b823582811115611abd57600080fd5b8301601f81018913611ace57600080fd5b803583811115611ae057611ae06119e6565b611af2601f8201601f19168701611a25565b93508084528986828401011115611b0857600080fd5b808683018786013760008682860101525050818152838301358482015260408301356040820152809450505050509250929050565b60008060008060808587031215611b5357600080fd5b8435611b5e8161188d565b93506020850135611b6e8161188d565b93969395505050506040820135916060013590565b60008060208385031215611b9657600080fd5b823567ffffffffffffffff80821115611bae57600080fd5b818501915085601f830112611bc257600080fd5b813581811115611bd157600080fd5b866020828501011115611be357600080fd5b60209290920196919550909350505050565b600060208284031215611c0757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c6e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b8281526000602060406020840152835180604085015260005b81811015611d2a57858101830151858201606001528201611d0e565b506000606082860101526060601f19601f830116850101925050509392505050565b600060208284031215611d5e57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a264697066735822122016d51116de2d4e6ebc6b9dfa2dada06d1f6e51f6dc472774de5d172aa09dda6d64736f6c63430008180033","gas_used":1557551,"gas_limit":2077867,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b3d565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b83565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611bf5565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c12565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c5c565b6104cb5760405162461bcd60e51b815260040161042e90611c7e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c5c565b6107345760405162461bcd60e51b815260040161042e90611c7e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611d988339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c5c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611d9883398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cc6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611bf5565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c12565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611cf5565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d4c565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d76565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b915060208381013567ffffffffffffffff80821115611a9257600080fd5b9085019060608288031215611aa657600080fd5b611aae6119fc565b823582811115611abd57600080fd5b8301601f81018913611ace57600080fd5b803583811115611ae057611ae06119e6565b611af2601f8201601f19168701611a25565b93508084528986828401011115611b0857600080fd5b808683018786013760008682860101525050818152838301358482015260408301356040820152809450505050509250929050565b60008060008060808587031215611b5357600080fd5b8435611b5e8161188d565b93506020850135611b6e8161188d565b93969395505050506040820135916060013590565b60008060208385031215611b9657600080fd5b823567ffffffffffffffff80821115611bae57600080fd5b818501915085601f830112611bc257600080fd5b813581811115611bd157600080fd5b866020828501011115611be357600080fd5b60209290920196919550909350505050565b600060208284031215611c0757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c6e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b8281526000602060406020840152835180604085015260005b81811015611d2a57858101830151858201606001528201611d0e565b506000606082860101526060601f19601f830116850101925050509392505050565b600060208284031215611d5e57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a264697066735822122016d51116de2d4e6ebc6b9dfa2dada06d1f6e51f6dc472774de5d172aa09dda6d64736f6c63430008180033","nonce":14,"gas_used":1736581},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x45944a","logs":[{"address":"0x9a676e781a523b5d0c0e43731313a708cb607508","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000800400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xd4b95e4ec6f57d6d419c266057e9a588e0aa952c244f102815e22672412725f4","block_number":8},{"info":{"transaction_hash":"0x046411743d2c08a8f69f7117e4aed15eb84999f401e950cafac8436c9d2c04d8","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":4371,"gas_limit":16304,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":31,"gas_used":25803},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x64cb","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x4bb7d4d7274a71c12835a9908de46427fa0aeb6b6a094449480e3e1ca9f10fed","block_number":20},{"info":{"transaction_hash":"0x78097108572bd24a0d9d38402e08deba85f116288eb014d9f4716584e68fc3b1","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":8,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8be1b","logs":[{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000040000000000000800000000000000000000000000000000040000000000000000000000000000000008000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xee6cb7f6ae5c0ed43bfc6d081e3fc7dea15f3d312f33bd7874634a2922cce52e","block_number":4},{"info":{"transaction_hash":"0xb607e1fb885ff8088878a3701005807b6ed2e513a5dc7a46832337ffad520f52","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31800000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":118592,"gas_limit":172672,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef28600000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":112208,"gas_limit":163737,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","address":"0x68b1d87f95878fe05b998f19b66f4baba5de1aed","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xeb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a","output":"0x","gas_used":99229,"gas_limit":148619,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":25,"gas_used":141852},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x22a1c","logs":[{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed"],"data":"0x"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800001004000000000000000000000000400000000100000000000000000000000000000000000080004000000000000000002000000000000000000000008400000000000000000000000000000000000000000020400000200000000000040000040000002008000001000000000020000000000000000001000000000000000000000000000000020000000000400000"},"block_hash":"0x4d32275554dd98a99e2baab8bcef04f67cb68824f3545606eefafcd92a5ab084","block_number":15},{"info":{"transaction_hash":"0x9e3bafd0639aa5c6dfb1f077014b1e2bbf8904dd40ac5ceae5e3fcff142f99ee","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a060405234801561001057600080fd5b506040516113a63803806113a683398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b60805161123a61016c60003960008181610142015281816102750152818161040f01526107d6015261123a6000f3fe608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f28565b60405180910390f35b6100f46100ef366004610f9c565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fcf565b610404565b005b6100f4610138366004610fea565b610528565b6101647f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fcf565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9c565b6105f5565b6040516100d8919061102d565b61018f6101e1366004610f9c565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611065565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fcf565b6108d5565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102bb5760405162461bcd60e51b81526004016102b29061108f565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611102565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611118565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112e565b6000610368836108f4565b905061037f898461037a600185611199565b6109f1565b8085858151811061039257610392611118565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461044c5760405162461bcd60e51b81526004016102b29061108f565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611118565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611102565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611118565b6020026020010181815250506000801b8282815181106106a2576106a2611118565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611118565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108135760405162461bcd60e51b81526004016102b29061108f565b60005b818110156108cf57600083838381811061083257610832611118565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112e565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111bd565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b600184611199565b63ffffffff168152602081019190915260400160009081205490036103b75760ff8416600090815260026020526040812090610988600184611199565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111da565b81548110610abc57610abc611118565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111da565b81548110610b0357610b03611118565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111da565b81548110610b5d57610b5d611118565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111ed565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111da565b81548110610cb457610cb4611118565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111ed565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff16611199565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff80821115610ee057600080fd5b818601915086601f830112610ef457600080fd5b813581811115610f0357600080fd5b876020828501011115610f1557600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835163ffffffff1683529284019291840191600101610f44565b50909695505050505050565b803560ff81168114610f8357600080fd5b919050565b803563ffffffff81168114610f8357600080fd5b60008060408385031215610faf57600080fd5b610fb883610f72565b9150610fc660208401610f88565b90509250929050565b600060208284031215610fe157600080fd5b6103b782610f72565b600080600060608486031215610fff57600080fd5b61100884610f72565b925061101660208501610f88565b915061102460408501610f88565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835183529284019291840191600101611049565b6000806040838503121561107857600080fd5b61108183610f72565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff8281168282160390808211156111b6576111b6611183565b5092915050565b63ffffffff8181168382160190808211156111b6576111b6611183565b818103818111156103fe576103fe611183565b6000816111fc576111fc611183565b50600019019056fea2646970667358221220af8de4d3486e0b797de225bb92c1953126cca4d69399c73bf6885ce4485dc52464736f6c63430008180033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c","output":"0x608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f28565b60405180910390f35b6100f46100ef366004610f9c565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fcf565b610404565b005b6100f4610138366004610fea565b610528565b6101647f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fcf565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9c565b6105f5565b6040516100d8919061102d565b61018f6101e1366004610f9c565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611065565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fcf565b6108d5565b6060336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146102bb5760405162461bcd60e51b81526004016102b29061108f565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611102565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611118565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112e565b6000610368836108f4565b905061037f898461037a600185611199565b6109f1565b8085858151811061039257610392611118565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461044c5760405162461bcd60e51b81526004016102b29061108f565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611118565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611102565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611118565b6020026020010181815250506000801b8282815181106106a2576106a2611118565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611118565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146108135760405162461bcd60e51b81526004016102b29061108f565b60005b818110156108cf57600083838381811061083257610832611118565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112e565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111bd565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b600184611199565b63ffffffff168152602081019190915260400160009081205490036103b75760ff8416600090815260026020526040812090610988600184611199565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111da565b81548110610abc57610abc611118565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111da565b81548110610b0357610b03611118565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111da565b81548110610b5d57610b5d611118565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111ed565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111da565b81548110610cb457610cb4611118565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111ed565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff16611199565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff80821115610ee057600080fd5b818601915086601f830112610ef457600080fd5b813581811115610f0357600080fd5b876020828501011115610f1557600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835163ffffffff1683529284019291840191600101610f44565b50909695505050505050565b803560ff81168114610f8357600080fd5b919050565b803563ffffffff81168114610f8357600080fd5b60008060408385031215610faf57600080fd5b610fb883610f72565b9150610fc660208401610f88565b90509250929050565b600060208284031215610fe157600080fd5b6103b782610f72565b600080600060608486031215610fff57600080fd5b61100884610f72565b925061101660208501610f88565b915061102460408501610f88565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835183529284019291840191600101611049565b6000806040838503121561107857600080fd5b61108183610f72565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff8281168282160390808211156111b6576111b6611183565b5092915050565b63ffffffff8181168382160190808211156111b6576111b6611183565b818103818111156103fe576103fe611183565b6000816111fc576111fc611183565b50600019019056fea2646970667358221220af8de4d3486e0b797de225bb92c1953126cca4d69399c73bf6885ce4485dc52464736f6c63430008180033","gas_used":957925,"gas_limit":1284210,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f28565b60405180910390f35b6100f46100ef366004610f9c565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fcf565b610404565b005b6100f4610138366004610fea565b610528565b6101647f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fcf565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9c565b6105f5565b6040516100d8919061102d565b61018f6101e1366004610f9c565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611065565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fcf565b6108d5565b6060336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146102bb5760405162461bcd60e51b81526004016102b29061108f565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611102565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611118565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112e565b6000610368836108f4565b905061037f898461037a600185611199565b6109f1565b8085858151811061039257610392611118565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461044c5760405162461bcd60e51b81526004016102b29061108f565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611118565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611102565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611118565b6020026020010181815250506000801b8282815181106106a2576106a2611118565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611118565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146108135760405162461bcd60e51b81526004016102b29061108f565b60005b818110156108cf57600083838381811061083257610832611118565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112e565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111bd565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b600184611199565b63ffffffff168152602081019190915260400160009081205490036103b75760ff8416600090815260026020526040812090610988600184611199565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111da565b81548110610abc57610abc611118565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111da565b81548110610b0357610b03611118565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111da565b81548110610b5d57610b5d611118565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111ed565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111da565b81548110610cb457610cb4611118565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111ed565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff16611199565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff80821115610ee057600080fd5b818601915086601f830112610ef457600080fd5b813581811115610f0357600080fd5b876020828501011115610f1557600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835163ffffffff1683529284019291840191600101610f44565b50909695505050505050565b803560ff81168114610f8357600080fd5b919050565b803563ffffffff81168114610f8357600080fd5b60008060408385031215610faf57600080fd5b610fb883610f72565b9150610fc660208401610f88565b90509250929050565b600060208284031215610fe157600080fd5b6103b782610f72565b600080600060608486031215610fff57600080fd5b61100884610f72565b925061101660208501610f88565b915061102460408501610f88565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835183529284019291840191600101611049565b6000806040838503121561107857600080fd5b61108183610f72565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff8281168282160390808211156111b6576111b6611183565b5092915050565b63ffffffff8181168382160190808211156111b6576111b6611183565b818103818111156103fe576103fe611183565b6000816111fc576111fc611183565b50600019019056fea2646970667358221220af8de4d3486e0b797de225bb92c1953126cca4d69399c73bf6885ce4485dc52464736f6c63430008180033","nonce":40,"gas_used":1088995},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x109de3","logs":[{"address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x8a0b101ff5da236bc23c5fed4a0a05ea37bba048eebc6889bd7d468e4a46dec4","block_number":5},{"info":{"transaction_hash":"0x1d15ae6b01cf50f6bdf794782572de5debf9cb020716eec546a5c1a6694dd6d5","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x851356ae760d987e095750cceb3bc6014560891c","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x851356ae760d987e095750cceb3bc6014560891c","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":36,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x117c36","logs":[{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00000000000000000000000000000000400400000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000010000000000000400000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x35626da0b0baac650ac5b7d13960a8734301f228cfec3f46aea30afabcb21714","block_number":3},{"info":{"transaction_hash":"0x8cfe1718165e545c4415c8ec5d5f8d4e4a09fa3a1a9dd23f47c8f9a453a90394","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x0b306bf915c4d645ff596e518faf3f9669b97016","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x0b306bf915c4d645ff596e518faf3f9669b97016","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6101806040523480156200001257600080fd5b5060405162003dec38038062003dec8339810160408190526200003591620002e4565b868686868686866200004885826200037e565b63ffffffff1615620000ed5760405162461bcd60e51b815260206004820152606060248201527f52657761726473436f6f7264696e61746f723a2047454e455349535f5245574160448201527f5244535f54494d455354414d50206d7573742062652061206d756c7469706c6560648201527f206f662043414c43554c4154494f4e5f494e54455256414c5f5345434f4e4453608482015260a4015b60405180910390fd5b620000fc62015180866200037e565b63ffffffff16156200019d5760405162461bcd60e51b815260206004820152605760248201527f52657761726473436f6f7264696e61746f723a2043414c43554c4154494f4e5f60448201527f494e54455256414c5f5345434f4e4453206d7573742062652061206d756c746960648201527f706c65206f6620534e415053484f545f434144454e4345000000000000000000608482015260a401620000e4565b6001600160a01b0396871661012052949095166101405263ffffffff92831660805290821660a052811660c05291821660e0521661010052620001df620001f2565b5050466101605250620003b09350505050565b600054610100900460ff16156200025c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401620000e4565b60005460ff9081161015620002af576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114620002c757600080fd5b50565b805163ffffffff81168114620002df57600080fd5b919050565b600080600080600080600060e0888a0312156200030057600080fd5b87516200030d81620002b1565b60208901519097506200032081620002b1565b95506200033060408901620002ca565b94506200034060608901620002ca565b93506200035060808901620002ca565b92506200036060a08901620002ca565b91506200037060c08901620002ca565b905092959891949750929550565b600063ffffffff80841680620003a457634e487b7160e01b600052601260045260246000fd5b92169190910692915050565b60805160a05160c05160e051610100516101205161014051610160516139a562000447600039600061181f0152600081816104400152612295015260006106ec01526000818161035701526120c40152600081816102cb0152612170015260008181610419015261207301526000818161065e0152611dea01526000818161060401528181611ea10152611f7c01526139a56000f3fe608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613257565b610caa565b61033d61049a3660046132b7565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e3565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b16105143660046132fe565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613321565b611469565b6102b1610552366004613356565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6102b161068e366004613356565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc36600461339f565b61156b565b61033d6106cf366004613412565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342d565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344a565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613494565b61093b5760405162461bcd60e51b815260040161089e906134b1565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134f9565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110610b8957610b89613567565b9050602002810190610b9b919061357d565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c3565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a908390613709565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371c565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134f9565b600260975403610cf45760405162461bcd60e51b815260040161089e90613530565b6002609755600060ca610d0a60208601866132e3565b63ffffffff1681548110610d2057610d20613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a088018861372f565b90508110156110445736610e4f60e0890189613780565b83818110610e5f57610e5f613567565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137ca565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134f9565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137dd565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613494565b6113ea5760405162461bcd60e51b815260040161089e906134b1565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e3565b63ffffffff168154811061149457611494613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e5600184613801565b63ffffffff16815481106116fb576116fb613567565b906000526020600020906002020160000154036117245761171d600182613801565b9392505050565b8061172e8161381e565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000000000460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342d565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344a565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134f9565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110611a3257611a32613567565b9050602002810190611a44919061357d565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c3565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac3908390613709565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371c565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613780565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611e1a60a08301608084016132e3565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611ed060a08301608084016132e3565b611eda9190613854565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611fab60808301606084016132e3565b611fb59190613854565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e3565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff16426120a391906137ca565b111580156120ec57506120bc60808201606083016132e3565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642613709565b6121a660808301606084016132e3565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613780565b905081101561245357600061224d8480613780565b8381811061225d5761225d613567565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613494565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c083018361372f565b905061255e60a084018461372f565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613780565b905061260460c084018461372f565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e3565b6126af6040860186613877565b86606001612b77565b60005b6126c860a084018461372f565b90508110156124535761276260808401356126e660a086018661372f565b848181106126f6576126f6613567565b905060200201602081019061270b91906132e3565b61271860c087018761372f565b8581811061272857612728613567565b905060200281019061273a9190613877565b61274760e0890189613780565b8781811061275757612757613567565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613494565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138be565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138be565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f6565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613908565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613908565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b613092602082613709565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e919061391c565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff808211156131fa57600080fd5b818501915085601f83011261320e57600080fd5b81358181111561321d57600080fd5b8660208260051b850101111561323257600080fd5b60209290920196919550909350505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326a57600080fd5b823567ffffffffffffffff81111561328157600080fd5b61328d85828601613244565b9250506020830135613149816130db565b803563ffffffff811681146132b257600080fd5b919050565b600080604083850312156132ca57600080fd5b823591506132da6020840161329e565b90509250929050565b6000602082840312156132f557600080fd5b61171d8261329e565b60006020828403121561331057600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333357600080fd5b813567ffffffffffffffff81111561334a57600080fd5b612e4b84828501613244565b6000806040838503121561336957600080fd5b8235613374816130db565b946020939093013593505050565b80356132b2816130db565b803561ffff811681146132b257600080fd5b60008060008060008060c087890312156133b857600080fd5b86356133c3816130db565b955060208701356133d3816130db565b94506040870135935060608701356133ea816130db565b92506133f86080880161329e565b915061340660a0880161338d565b90509295509295509295565b60006020828403121561342457600080fd5b61171d8261338d565b60006020828403121561343f57600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a657600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359357600080fd5b9190910192915050565b818352600060208085019450826000805b868110156136025782356135c1816130db565b6001600160a01b03168852828401356bffffffffffffffffffffffff81168082146135ea578384fd5b898601525060409788019792909201916001016135ae565b50959695505050505050565b60008135601e1983360301811261362457600080fd5b820160208101903567ffffffffffffffff81111561364157600080fd5b8060061b360382131561365357600080fd5b60a0855261366560a08601828461359d565b91505061367460208401613382565b6001600160a01b03166020850152604083810135908501526136986060840161329e565b63ffffffff1660608501526136af6080840161329e565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136ea606083018461360e565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f3565b60208152600061171d602083018461360e565b6000808335601e1984360301811261374657600080fd5b83018035915067ffffffffffffffff82111561376157600080fd5b6020019150600581901b360382131561377957600080fd5b9250929050565b6000808335601e1984360301811261379757600080fd5b83018035915067ffffffffffffffff8211156137b257600080fd5b6020019150600681901b360382131561377957600080fd5b81810381811115610a7757610a776136f3565b63ffffffff8181168382160190808211156137fa576137fa6136f3565b5092915050565b63ffffffff8281168282160390808211156137fa576137fa6136f3565b600063ffffffff821680613834576138346136f3565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061386b5761386b61383e565b92169190910692915050565b6000808335601e1984360301811261388e57600080fd5b83018035915067ffffffffffffffff8211156138a957600080fd5b60200191503681900382131561377957600080fd5b6000826138cd576138cd61383e565b500490565b60005b838110156138ed5781810151838201526020016138d5565b50506000910152565b600082516135938184602087016138d2565b6000826139175761391761383e565b500690565b602081526000825180602084015261393b8160408501602087016138d2565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a24fa288bd4bdcb1a7a813fb6a838dbea7b30eebacde1df7b8b1ffae0b140b2b64736f6c63430008180033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000000000000000000000000000000000000093a8000000000000000000000000000000000000000000000000000000000005c4900000000000000000000000000000000000000000000000000000000000076a7000000000000000000000000000000000000000000000000000000000000278d000000000000000000000000000000000000000000000000000000000065fb7880","output":"0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613257565b610caa565b61033d61049a3660046132b7565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e3565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b16105143660046132fe565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613321565b611469565b6102b1610552366004613356565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613356565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc36600461339f565b61156b565b61033d6106cf366004613412565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342d565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344a565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613494565b61093b5760405162461bcd60e51b815260040161089e906134b1565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134f9565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110610b8957610b89613567565b9050602002810190610b9b919061357d565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c3565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a908390613709565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371c565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134f9565b600260975403610cf45760405162461bcd60e51b815260040161089e90613530565b6002609755600060ca610d0a60208601866132e3565b63ffffffff1681548110610d2057610d20613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a088018861372f565b90508110156110445736610e4f60e0890189613780565b83818110610e5f57610e5f613567565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137ca565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134f9565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137dd565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613494565b6113ea5760405162461bcd60e51b815260040161089e906134b1565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e3565b63ffffffff168154811061149457611494613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e5600184613801565b63ffffffff16815481106116fb576116fb613567565b906000526020600020906002020160000154036117245761171d600182613801565b9392505050565b8061172e8161381e565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342d565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344a565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134f9565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110611a3257611a32613567565b9050602002810190611a44919061357d565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c3565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac3908390613709565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371c565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613780565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e3565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e3565b611eda9190613854565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e3565b611fb59190613854565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e3565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137ca565b111580156120ec57506120bc60808201606083016132e3565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d001642613709565b6121a660808301606084016132e3565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613780565b905081101561245357600061224d8480613780565b8381811061225d5761225d613567565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613494565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c083018361372f565b905061255e60a084018461372f565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613780565b905061260460c084018461372f565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e3565b6126af6040860186613877565b86606001612b77565b60005b6126c860a084018461372f565b90508110156124535761276260808401356126e660a086018661372f565b848181106126f6576126f6613567565b905060200201602081019061270b91906132e3565b61271860c087018761372f565b8581811061272857612728613567565b905060200281019061273a9190613877565b61274760e0890189613780565b8781811061275757612757613567565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613494565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138be565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138be565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f6565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613908565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613908565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b613092602082613709565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e919061391c565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff808211156131fa57600080fd5b818501915085601f83011261320e57600080fd5b81358181111561321d57600080fd5b8660208260051b850101111561323257600080fd5b60209290920196919550909350505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326a57600080fd5b823567ffffffffffffffff81111561328157600080fd5b61328d85828601613244565b9250506020830135613149816130db565b803563ffffffff811681146132b257600080fd5b919050565b600080604083850312156132ca57600080fd5b823591506132da6020840161329e565b90509250929050565b6000602082840312156132f557600080fd5b61171d8261329e565b60006020828403121561331057600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333357600080fd5b813567ffffffffffffffff81111561334a57600080fd5b612e4b84828501613244565b6000806040838503121561336957600080fd5b8235613374816130db565b946020939093013593505050565b80356132b2816130db565b803561ffff811681146132b257600080fd5b60008060008060008060c087890312156133b857600080fd5b86356133c3816130db565b955060208701356133d3816130db565b94506040870135935060608701356133ea816130db565b92506133f86080880161329e565b915061340660a0880161338d565b90509295509295509295565b60006020828403121561342457600080fd5b61171d8261338d565b60006020828403121561343f57600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a657600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359357600080fd5b9190910192915050565b818352600060208085019450826000805b868110156136025782356135c1816130db565b6001600160a01b03168852828401356bffffffffffffffffffffffff81168082146135ea578384fd5b898601525060409788019792909201916001016135ae565b50959695505050505050565b60008135601e1983360301811261362457600080fd5b820160208101903567ffffffffffffffff81111561364157600080fd5b8060061b360382131561365357600080fd5b60a0855261366560a08601828461359d565b91505061367460208401613382565b6001600160a01b03166020850152604083810135908501526136986060840161329e565b63ffffffff1660608501526136af6080840161329e565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136ea606083018461360e565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f3565b60208152600061171d602083018461360e565b6000808335601e1984360301811261374657600080fd5b83018035915067ffffffffffffffff82111561376157600080fd5b6020019150600581901b360382131561377957600080fd5b9250929050565b6000808335601e1984360301811261379757600080fd5b83018035915067ffffffffffffffff8211156137b257600080fd5b6020019150600681901b360382131561377957600080fd5b81810381811115610a7757610a776136f3565b63ffffffff8181168382160190808211156137fa576137fa6136f3565b5092915050565b63ffffffff8281168282160390808211156137fa576137fa6136f3565b600063ffffffff821680613834576138346136f3565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061386b5761386b61383e565b92169190910692915050565b6000808335601e1984360301811261388e57600080fd5b83018035915067ffffffffffffffff8211156138a957600080fd5b60200191503681900382131561377957600080fd5b6000826138cd576138cd61383e565b500490565b60005b838110156138ed5781810151838201526020016138d5565b50506000910152565b600082516135938184602087016138d2565b6000826139175761391761383e565b500690565b602081526000825180602084015261393b8160408501602087016138d2565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a24fa288bd4bdcb1a7a813fb6a838dbea7b30eebacde1df7b8b1ffae0b140b2b64736f6c63430008180033","gas_used":2979522,"gas_limit":3961815,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613257565b610caa565b61033d61049a3660046132b7565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e3565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b16105143660046132fe565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613321565b611469565b6102b1610552366004613356565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613356565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc36600461339f565b61156b565b61033d6106cf366004613412565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342d565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344a565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613494565b61093b5760405162461bcd60e51b815260040161089e906134b1565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134f9565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110610b8957610b89613567565b9050602002810190610b9b919061357d565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c3565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a908390613709565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371c565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134f9565b600260975403610cf45760405162461bcd60e51b815260040161089e90613530565b6002609755600060ca610d0a60208601866132e3565b63ffffffff1681548110610d2057610d20613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a088018861372f565b90508110156110445736610e4f60e0890189613780565b83818110610e5f57610e5f613567565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137ca565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134f9565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137dd565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613494565b6113ea5760405162461bcd60e51b815260040161089e906134b1565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e3565b63ffffffff168154811061149457611494613567565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e5600184613801565b63ffffffff16815481106116fb576116fb613567565b906000526020600020906002020160000154036117245761171d600182613801565b9392505050565b8061172e8161381e565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342d565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344a565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134f9565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613530565b600260975560005b82811015610c9f5736848483818110611a3257611a32613567565b9050602002810190611a44919061357d565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c3565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac3908390613709565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371c565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613780565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e3565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e3565b611eda9190613854565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e3565b611fb59190613854565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e3565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137ca565b111580156120ec57506120bc60808201606083016132e3565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d001642613709565b6121a660808301606084016132e3565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613780565b905081101561245357600061224d8480613780565b8381811061225d5761225d613567565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613494565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061395083398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c083018361372f565b905061255e60a084018461372f565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613780565b905061260460c084018461372f565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e3565b6126af6040860186613877565b86606001612b77565b60005b6126c860a084018461372f565b90508110156124535761276260808401356126e660a086018661372f565b848181106126f6576126f6613567565b905060200201602081019061270b91906132e3565b61271860c087018761372f565b8581811061272857612728613567565b905060200281019061273a9190613877565b61274760e0890189613780565b8781811061275757612757613567565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613494565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138be565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138be565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f6565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613908565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613908565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b613092602082613709565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e919061391c565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff808211156131fa57600080fd5b818501915085601f83011261320e57600080fd5b81358181111561321d57600080fd5b8660208260051b850101111561323257600080fd5b60209290920196919550909350505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326a57600080fd5b823567ffffffffffffffff81111561328157600080fd5b61328d85828601613244565b9250506020830135613149816130db565b803563ffffffff811681146132b257600080fd5b919050565b600080604083850312156132ca57600080fd5b823591506132da6020840161329e565b90509250929050565b6000602082840312156132f557600080fd5b61171d8261329e565b60006020828403121561331057600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333357600080fd5b813567ffffffffffffffff81111561334a57600080fd5b612e4b84828501613244565b6000806040838503121561336957600080fd5b8235613374816130db565b946020939093013593505050565b80356132b2816130db565b803561ffff811681146132b257600080fd5b60008060008060008060c087890312156133b857600080fd5b86356133c3816130db565b955060208701356133d3816130db565b94506040870135935060608701356133ea816130db565b92506133f86080880161329e565b915061340660a0880161338d565b90509295509295509295565b60006020828403121561342457600080fd5b61171d8261338d565b60006020828403121561343f57600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a657600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359357600080fd5b9190910192915050565b818352600060208085019450826000805b868110156136025782356135c1816130db565b6001600160a01b03168852828401356bffffffffffffffffffffffff81168082146135ea578384fd5b898601525060409788019792909201916001016135ae565b50959695505050505050565b60008135601e1983360301811261362457600080fd5b820160208101903567ffffffffffffffff81111561364157600080fd5b8060061b360382131561365357600080fd5b60a0855261366560a08601828461359d565b91505061367460208401613382565b6001600160a01b03166020850152604083810135908501526136986060840161329e565b63ffffffff1660608501526136af6080840161329e565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136ea606083018461360e565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f3565b60208152600061171d602083018461360e565b6000808335601e1984360301811261374657600080fd5b83018035915067ffffffffffffffff82111561376157600080fd5b6020019150600581901b360382131561377957600080fd5b9250929050565b6000808335601e1984360301811261379757600080fd5b83018035915067ffffffffffffffff8211156137b257600080fd5b6020019150600681901b360382131561377957600080fd5b81810381811115610a7757610a776136f3565b63ffffffff8181168382160190808211156137fa576137fa6136f3565b5092915050565b63ffffffff8281168282160390808211156137fa576137fa6136f3565b600063ffffffff821680613834576138346136f3565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061386b5761386b61383e565b92169190910692915050565b6000808335601e1984360301811261388e57600080fd5b83018035915067ffffffffffffffff8211156138a957600080fd5b60200191503681900382131561377957600080fd5b6000826138cd576138cd61383e565b500490565b60005b838110156138ed5781810151838201526020016138d5565b50506000910152565b600082516135938184602087016138d2565b6000826139175761391761383e565b500690565b602081526000825180602084015261393b8160408501602087016138d2565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a24fa288bd4bdcb1a7a813fb6a838dbea7b30eebacde1df7b8b1ffae0b140b2b64736f6c63430008180033","nonce":15,"gas_used":3278672},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x320750","logs":[{"address":"0x0b306bf915c4d645ff596e518faf3f9669b97016","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000"},"block_hash":"0x66835bd370fe530f0849c43835f64e9d70ef796d79b976afce6a9d55047991b3","block_number":9},{"info":{"transaction_hash":"0x46592688e43f9f32c373934da7a3fda6407d13c9a010b772b5d79bfc1b7a9b17","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":98665,"gas_limit":155049,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":92281,"gas_limit":146390,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","address":"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xcf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":79302,"gas_limit":131544,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f6","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":24,"gas_used":121913},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1dc39","logs":[{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae"],"data":"0x"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f6","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x000000000400000000000000400000004000000000000000008000000000000000000000000000000000000000000000000000000080001000000000000000000000000000000000000004000000020000010000000000000002000000000000000000000200000400000001008008000000040000000000000000000000004000000001000000000000000000000000008000000000c0000000000000000000000000000000000000000000000440000000000000000000000000000000008000000020400000200000000000040000010000002008000000000000000020000000000000000000000000000000000000000000000000000000000000400000"},"block_hash":"0x3ae86512f47472599bdf17ca766dd68a09554bd2059f48155a92fc414f24ddd2","block_number":14},{"info":{"transaction_hash":"0xb79129a1bcaced66b498a596a000f6c1287c9e51b067424e38572ea6782cf0ba","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000064c0c53b8b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a6500000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":113579,"gas_limit":176912,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef286000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000064c0c53b8b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a6500000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":107283,"gas_limit":167998,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xc0c53b8b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65","output":"0x","gas_used":94380,"gas_limit":152889,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2}]}],"exit":"Stop","out":"0x","nonce":49,"gas_used":136939},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x49623f","logs":[{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d"],"data":"0x"},{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0xe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000001000000400000000000000000800000000000000000000000000000000000000000000000000100000000002000000000000000000000000000000000000000000002000001000000000000000000000000000008000000020000000000010100000800000000000000000000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000104000000000000000000000000000000000020000000200000000000040000100000002000000000000000000020000000000000000000000000000000000000000000000000000000000000001000"},"block_hash":"0xfd88461004175c7f26b13da9021a7bad73662b8e53f8ff5d43d61cbbe580d878","block_number":8},{"info":{"transaction_hash":"0x81dd07606181907ca6e800a6bcba734d7b5df943909c5dad6ddfcddeb9ea1376","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100e2565b600054610100900460ff161561008e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e0576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051611a82610119600039600081816105e801528181610628015281816106d90152818161071901526107ac0152611a826000f3fe60806040526004361061012e5760003560e01c8063715018a6116100ab578063a69df4b51161006f578063a69df4b5146103c0578063a7d31809146103d5578063c0c53b8b146103f5578063c891091314610415578063f2fde38b1461046c578063f83d08ba1461048c57600080fd5b8063715018a61461034257806373e289d0146103575780638456cb591461036d5780638da5cb5b14610382578063953ef807146103a057600080fd5b80634d5431ea116100f25780634d5431ea146102865780634f1ef286146102bf57806352d1902d146102d257806358b96e27146102e75780635c975abb1461031f57600080fd5b806317d89c4e146101ad5780632df4e21e146101f95780632e1a7d4d1461022f5780633659cfe6146102515780633f4ba83a1461027157600080fd5b366101a85733600090815260fd60205260408120805434929061015290849061154c565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709061019e9034815260200190565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101e66101c8366004611574565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561020557600080fd5b506101e6610214366004611574565b6001600160a01b0316600090815260fd602052604090205490565b34801561023b57600080fd5b5061024f61024a366004611591565b6104a1565b005b34801561025d57600080fd5b5061024f61026c366004611574565b6105de565b34801561027d57600080fd5b5061024f6106bd565b34801561029257600080fd5b506101e66102a1366004611574565b6001600160a01b0316600090815260fd602052604090206001015490565b61024f6102cd3660046115c0565b6106cf565b3480156102de57600080fd5b506101e661079f565b3480156102f357600080fd5b5060fc54610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b34801561032b57600080fd5b5060655460ff1660405190151581526020016101f0565b34801561034e57600080fd5b5061024f610852565b34801561036357600080fd5b506101e6610e1081565b34801561037957600080fd5b5061024f610864565b34801561038e57600080fd5b506033546001600160a01b0316610307565b3480156103ac57600080fd5b5060fb54610307906001600160a01b031681565b3480156103cc57600080fd5b5061024f610874565b3480156103e157600080fd5b5061024f6103f03660046116d0565b61090b565b34801561040157600080fd5b5061024f61041036600461178f565b610b9f565b34801561042157600080fd5b50610451610430366004611574565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f0565b34801561047857600080fd5b5061024f610487366004611574565b610de9565b34801561049857600080fd5b5061024f610e5f565b6104a9610ed5565b33600090815260fd6020526040902080548211156104ec5780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105005750428160010154115b1561052d576001810154604051635f6e272d60e11b815260048101919091524260248201526044016104e3565b8181600001600082825461054191906117da565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f193505050501580156105a4573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106265760405162461bcd60e51b81526004016104e3906117ed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066f600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146106955760405162461bcd60e51b81526004016104e390611839565b61069e81610f1b565b604080516000808252602082019092526106ba91839190610f23565b50565b6106c5611093565b6106cd6110ed565b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107175760405162461bcd60e51b81526004016104e3906117ed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610760600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146107865760405162461bcd60e51b81526004016104e390611839565b61078f82610f1b565b61079b82826001610f23565b5050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461083f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e3565b50600080516020611a0683398151915290565b61085a611093565b6106cd600061113f565b61086c611093565b6106cd611191565b61087c610ed5565b33600090815260fd602052604081205490036108ad5760405163b38340cf60e01b81523360048201526024016104e3565b6108b9610e104261154c565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed8439161090191815260200190565b60405180910390a2565b60fc546001600160a01b03163314610938576040516302a5785160e31b81523360048201526024016104e3565b610940610ed5565b83600081900361096357604051630c43ac2960e41b815260040160405180910390fd5b82600003610984576040516351d432c560e11b815260040160405180910390fd5b8361098f8285611885565b116109c1578361099f8285611885565b604051637899ec7160e01b8152600481019290925260248201526044016104e3565b60005b818163ffffffff161015610aa257600087878363ffffffff168181106109ec576109ec61189c565b9050602002016020810190610a019190611574565b6001600160a01b038116600090815260fd60205260409020805491925090861115610a5b578054604051634f779ceb60e01b81526001600160a01b03841660048201526024810191909152604481018790526064016104e3565b600281018054906000610a6d836118b2565b919050555085816000016000828254610a8691906117da565b9250508190555050508080610a9a906118cb565b9150506109c4565b5060fb5460405163d66eaabd60e01b81526001600160a01b039091169063d66eaabd908690610adb908d908d908d9089906004016118ee565b6000604051808303818588803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b5050505050887f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375884604051610b3f91815260200190565b60405180910390a260fc546001600160a01b03166108fc85610b618487611885565b610b6b91906117da565b6040518115909202916000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015610bbf5750600054600160ff909116105b80610bd95750303b158015610bd9575060005460ff166001145b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e3565b6000805460ff191660011790558015610c5f576000805461ff0019166101001790555b6001600160a01b038416610cae57604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b60448201526064016104e3565b6001600160a01b038316610d0557604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e657200000000000060448201526064016104e3565b6001600160a01b038216610d4c57604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b60448201526064016104e3565b610d546111ce565b610d5c6111fd565b610d64611224565b610d6d8361113f565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610de3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610df1611093565b6001600160a01b038116610e565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6106ba8161113f565b610e67610ed5565b33600090815260fd60205260408120549003610e985760405163366095e160e11b81523360048201526024016104e3565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106cd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e3565b6106ba611093565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5b57610f5683611253565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb5575060408051601f3d908101601f19168201909252610fb29181019061192e565b60015b6110185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e3565b600080516020611a0683398151915281146110875760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e3565b50610f568383836112ef565b6033546001600160a01b031633146106cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e3565b6110f5611314565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611199610ed5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111223390565b600054610100900460ff166111f55760405162461bcd60e51b81526004016104e390611947565b6106cd61135d565b600054610100900460ff166106cd5760405162461bcd60e51b81526004016104e390611947565b600054610100900460ff1661124b5760405162461bcd60e51b81526004016104e390611947565b6106cd61138d565b6001600160a01b0381163b6112c05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e3565b600080516020611a0683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6112f8836113c0565b6000825111806113055750805b15610f5657610de38383611400565b60655460ff166106cd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e3565b600054610100900460ff166113845760405162461bcd60e51b81526004016104e390611947565b6106cd3361113f565b600054610100900460ff166113b45760405162461bcd60e51b81526004016104e390611947565b6065805460ff19169055565b6113c981611253565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6114685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104e3565b600080846001600160a01b03168460405161148391906119b6565b600060405180830381855af49150503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50915091506114eb8282604051806060016040528060278152602001611a26602791396114f6565b925050505b92915050565b6060831561150557508161152f565b8251156115155782518084602001fd5b8160405162461bcd60e51b81526004016104e391906119d2565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156114f0576114f0611536565b6001600160a01b03811681146106ba57600080fd5b60006020828403121561158657600080fd5b813561152f8161155f565b6000602082840312156115a357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115d357600080fd5b82356115de8161155f565b9150602083013567ffffffffffffffff808211156115fb57600080fd5b818501915085601f83011261160f57600080fd5b813581811115611621576116216115aa565b604051601f8201601f19908116603f01168101908382118183101715611649576116496115aa565b8160405282815288602084870101111561166257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f84011261169657600080fd5b50813567ffffffffffffffff8111156116ae57600080fd5b6020830191508360208260051b85010111156116c957600080fd5b9250929050565b60008060008060008060008060c0898b0312156116ec57600080fd5b88359750602089013567ffffffffffffffff8082111561170b57600080fd5b818b0191508b601f83011261171f57600080fd5b81358181111561172e57600080fd5b8c602082850101111561174057600080fd5b6020830199508098505060408b013591508082111561175e57600080fd5b5061176b8b828c01611684565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b6000806000606084860312156117a457600080fd5b83356117af8161155f565b925060208401356117bf8161155f565b915060408401356117cf8161155f565b809150509250925092565b818103818111156114f0576114f0611536565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820281158282048414176114f0576114f0611536565b634e487b7160e01b600052603260045260246000fd5b6000600182016118c4576118c4611536565b5060010190565b600063ffffffff8083168181036118e4576118e4611536565b6001019392505050565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561194057600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156119ad578181015183820152602001611995565b50506000910152565b600082516119c8818460208701611992565b9190910192915050565b60208152600082518060208401526119f1816040850160208701611992565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e6ad2eed1ecf7ce82da9919d74f91b18da2f843c4e01e2d1ecb23ce863370e2964736f6c63430008180033","output":"0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063a69df4b51161006f578063a69df4b5146103c0578063a7d31809146103d5578063c0c53b8b146103f5578063c891091314610415578063f2fde38b1461046c578063f83d08ba1461048c57600080fd5b8063715018a61461034257806373e289d0146103575780638456cb591461036d5780638da5cb5b14610382578063953ef807146103a057600080fd5b80634d5431ea116100f25780634d5431ea146102865780634f1ef286146102bf57806352d1902d146102d257806358b96e27146102e75780635c975abb1461031f57600080fd5b806317d89c4e146101ad5780632df4e21e146101f95780632e1a7d4d1461022f5780633659cfe6146102515780633f4ba83a1461027157600080fd5b366101a85733600090815260fd60205260408120805434929061015290849061154c565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709061019e9034815260200190565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101e66101c8366004611574565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561020557600080fd5b506101e6610214366004611574565b6001600160a01b0316600090815260fd602052604090205490565b34801561023b57600080fd5b5061024f61024a366004611591565b6104a1565b005b34801561025d57600080fd5b5061024f61026c366004611574565b6105de565b34801561027d57600080fd5b5061024f6106bd565b34801561029257600080fd5b506101e66102a1366004611574565b6001600160a01b0316600090815260fd602052604090206001015490565b61024f6102cd3660046115c0565b6106cf565b3480156102de57600080fd5b506101e661079f565b3480156102f357600080fd5b5060fc54610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b34801561032b57600080fd5b5060655460ff1660405190151581526020016101f0565b34801561034e57600080fd5b5061024f610852565b34801561036357600080fd5b506101e6610e1081565b34801561037957600080fd5b5061024f610864565b34801561038e57600080fd5b506033546001600160a01b0316610307565b3480156103ac57600080fd5b5060fb54610307906001600160a01b031681565b3480156103cc57600080fd5b5061024f610874565b3480156103e157600080fd5b5061024f6103f03660046116d0565b61090b565b34801561040157600080fd5b5061024f61041036600461178f565b610b9f565b34801561042157600080fd5b50610451610430366004611574565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f0565b34801561047857600080fd5b5061024f610487366004611574565b610de9565b34801561049857600080fd5b5061024f610e5f565b6104a9610ed5565b33600090815260fd6020526040902080548211156104ec5780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105005750428160010154115b1561052d576001810154604051635f6e272d60e11b815260048101919091524260248201526044016104e3565b8181600001600082825461054191906117da565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f193505050501580156105a4573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036106265760405162461bcd60e51b81526004016104e3906117ed565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b031661066f600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146106955760405162461bcd60e51b81526004016104e390611839565b61069e81610f1b565b604080516000808252602082019092526106ba91839190610f23565b50565b6106c5611093565b6106cd6110ed565b565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036107175760405162461bcd60e51b81526004016104e3906117ed565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b0316610760600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146107865760405162461bcd60e51b81526004016104e390611839565b61078f82610f1b565b61079b82826001610f23565b5050565b6000306001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3161461083f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e3565b50600080516020611a0683398151915290565b61085a611093565b6106cd600061113f565b61086c611093565b6106cd611191565b61087c610ed5565b33600090815260fd602052604081205490036108ad5760405163b38340cf60e01b81523360048201526024016104e3565b6108b9610e104261154c565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed8439161090191815260200190565b60405180910390a2565b60fc546001600160a01b03163314610938576040516302a5785160e31b81523360048201526024016104e3565b610940610ed5565b83600081900361096357604051630c43ac2960e41b815260040160405180910390fd5b82600003610984576040516351d432c560e11b815260040160405180910390fd5b8361098f8285611885565b116109c1578361099f8285611885565b604051637899ec7160e01b8152600481019290925260248201526044016104e3565b60005b818163ffffffff161015610aa257600087878363ffffffff168181106109ec576109ec61189c565b9050602002016020810190610a019190611574565b6001600160a01b038116600090815260fd60205260409020805491925090861115610a5b578054604051634f779ceb60e01b81526001600160a01b03841660048201526024810191909152604481018790526064016104e3565b600281018054906000610a6d836118b2565b919050555085816000016000828254610a8691906117da565b9250508190555050508080610a9a906118cb565b9150506109c4565b5060fb5460405163d66eaabd60e01b81526001600160a01b039091169063d66eaabd908690610adb908d908d908d9089906004016118ee565b6000604051808303818588803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b5050505050887f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375884604051610b3f91815260200190565b60405180910390a260fc546001600160a01b03166108fc85610b618487611885565b610b6b91906117da565b6040518115909202916000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015610bbf5750600054600160ff909116105b80610bd95750303b158015610bd9575060005460ff166001145b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e3565b6000805460ff191660011790558015610c5f576000805461ff0019166101001790555b6001600160a01b038416610cae57604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b60448201526064016104e3565b6001600160a01b038316610d0557604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e657200000000000060448201526064016104e3565b6001600160a01b038216610d4c57604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b60448201526064016104e3565b610d546111ce565b610d5c6111fd565b610d64611224565b610d6d8361113f565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610de3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610df1611093565b6001600160a01b038116610e565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6106ba8161113f565b610e67610ed5565b33600090815260fd60205260408120549003610e985760405163366095e160e11b81523360048201526024016104e3565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106cd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e3565b6106ba611093565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5b57610f5683611253565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb5575060408051601f3d908101601f19168201909252610fb29181019061192e565b60015b6110185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e3565b600080516020611a0683398151915281146110875760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e3565b50610f568383836112ef565b6033546001600160a01b031633146106cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e3565b6110f5611314565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611199610ed5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111223390565b600054610100900460ff166111f55760405162461bcd60e51b81526004016104e390611947565b6106cd61135d565b600054610100900460ff166106cd5760405162461bcd60e51b81526004016104e390611947565b600054610100900460ff1661124b5760405162461bcd60e51b81526004016104e390611947565b6106cd61138d565b6001600160a01b0381163b6112c05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e3565b600080516020611a0683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6112f8836113c0565b6000825111806113055750805b15610f5657610de38383611400565b60655460ff166106cd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e3565b600054610100900460ff166113845760405162461bcd60e51b81526004016104e390611947565b6106cd3361113f565b600054610100900460ff166113b45760405162461bcd60e51b81526004016104e390611947565b6065805460ff19169055565b6113c981611253565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6114685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104e3565b600080846001600160a01b03168460405161148391906119b6565b600060405180830381855af49150503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50915091506114eb8282604051806060016040528060278152602001611a26602791396114f6565b925050505b92915050565b6060831561150557508161152f565b8251156115155782518084602001fd5b8160405162461bcd60e51b81526004016104e391906119d2565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156114f0576114f0611536565b6001600160a01b03811681146106ba57600080fd5b60006020828403121561158657600080fd5b813561152f8161155f565b6000602082840312156115a357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115d357600080fd5b82356115de8161155f565b9150602083013567ffffffffffffffff808211156115fb57600080fd5b818501915085601f83011261160f57600080fd5b813581811115611621576116216115aa565b604051601f8201601f19908116603f01168101908382118183101715611649576116496115aa565b8160405282815288602084870101111561166257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f84011261169657600080fd5b50813567ffffffffffffffff8111156116ae57600080fd5b6020830191508360208260051b85010111156116c957600080fd5b9250929050565b60008060008060008060008060c0898b0312156116ec57600080fd5b88359750602089013567ffffffffffffffff8082111561170b57600080fd5b818b0191508b601f83011261171f57600080fd5b81358181111561172e57600080fd5b8c602082850101111561174057600080fd5b6020830199508098505060408b013591508082111561175e57600080fd5b5061176b8b828c01611684565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b6000806000606084860312156117a457600080fd5b83356117af8161155f565b925060208401356117bf8161155f565b915060408401356117cf8161155f565b809150509250925092565b818103818111156114f0576114f0611536565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820281158282048414176114f0576114f0611536565b634e487b7160e01b600052603260045260246000fd5b6000600182016118c4576118c4611536565b5060010190565b600063ffffffff8083168181036118e4576118e4611536565b6001019392505050565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561194057600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156119ad578181015183820152602001611995565b50506000910152565b600082516119c8818460208701611992565b9190910192915050565b60208152600082518060208401526119f1816040850160208701611992565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e6ad2eed1ecf7ce82da9919d74f91b18da2f843c4e01e2d1ecb23ce863370e2964736f6c63430008180033","gas_used":1382195,"gas_limit":1845023,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063a69df4b51161006f578063a69df4b5146103c0578063a7d31809146103d5578063c0c53b8b146103f5578063c891091314610415578063f2fde38b1461046c578063f83d08ba1461048c57600080fd5b8063715018a61461034257806373e289d0146103575780638456cb591461036d5780638da5cb5b14610382578063953ef807146103a057600080fd5b80634d5431ea116100f25780634d5431ea146102865780634f1ef286146102bf57806352d1902d146102d257806358b96e27146102e75780635c975abb1461031f57600080fd5b806317d89c4e146101ad5780632df4e21e146101f95780632e1a7d4d1461022f5780633659cfe6146102515780633f4ba83a1461027157600080fd5b366101a85733600090815260fd60205260408120805434929061015290849061154c565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709061019e9034815260200190565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101e66101c8366004611574565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561020557600080fd5b506101e6610214366004611574565b6001600160a01b0316600090815260fd602052604090205490565b34801561023b57600080fd5b5061024f61024a366004611591565b6104a1565b005b34801561025d57600080fd5b5061024f61026c366004611574565b6105de565b34801561027d57600080fd5b5061024f6106bd565b34801561029257600080fd5b506101e66102a1366004611574565b6001600160a01b0316600090815260fd602052604090206001015490565b61024f6102cd3660046115c0565b6106cf565b3480156102de57600080fd5b506101e661079f565b3480156102f357600080fd5b5060fc54610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b34801561032b57600080fd5b5060655460ff1660405190151581526020016101f0565b34801561034e57600080fd5b5061024f610852565b34801561036357600080fd5b506101e6610e1081565b34801561037957600080fd5b5061024f610864565b34801561038e57600080fd5b506033546001600160a01b0316610307565b3480156103ac57600080fd5b5060fb54610307906001600160a01b031681565b3480156103cc57600080fd5b5061024f610874565b3480156103e157600080fd5b5061024f6103f03660046116d0565b61090b565b34801561040157600080fd5b5061024f61041036600461178f565b610b9f565b34801561042157600080fd5b50610451610430366004611574565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f0565b34801561047857600080fd5b5061024f610487366004611574565b610de9565b34801561049857600080fd5b5061024f610e5f565b6104a9610ed5565b33600090815260fd6020526040902080548211156104ec5780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105005750428160010154115b1561052d576001810154604051635f6e272d60e11b815260048101919091524260248201526044016104e3565b8181600001600082825461054191906117da565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f193505050501580156105a4573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036106265760405162461bcd60e51b81526004016104e3906117ed565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b031661066f600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146106955760405162461bcd60e51b81526004016104e390611839565b61069e81610f1b565b604080516000808252602082019092526106ba91839190610f23565b50565b6106c5611093565b6106cd6110ed565b565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036107175760405162461bcd60e51b81526004016104e3906117ed565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b0316610760600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146107865760405162461bcd60e51b81526004016104e390611839565b61078f82610f1b565b61079b82826001610f23565b5050565b6000306001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3161461083f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e3565b50600080516020611a0683398151915290565b61085a611093565b6106cd600061113f565b61086c611093565b6106cd611191565b61087c610ed5565b33600090815260fd602052604081205490036108ad5760405163b38340cf60e01b81523360048201526024016104e3565b6108b9610e104261154c565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed8439161090191815260200190565b60405180910390a2565b60fc546001600160a01b03163314610938576040516302a5785160e31b81523360048201526024016104e3565b610940610ed5565b83600081900361096357604051630c43ac2960e41b815260040160405180910390fd5b82600003610984576040516351d432c560e11b815260040160405180910390fd5b8361098f8285611885565b116109c1578361099f8285611885565b604051637899ec7160e01b8152600481019290925260248201526044016104e3565b60005b818163ffffffff161015610aa257600087878363ffffffff168181106109ec576109ec61189c565b9050602002016020810190610a019190611574565b6001600160a01b038116600090815260fd60205260409020805491925090861115610a5b578054604051634f779ceb60e01b81526001600160a01b03841660048201526024810191909152604481018790526064016104e3565b600281018054906000610a6d836118b2565b919050555085816000016000828254610a8691906117da565b9250508190555050508080610a9a906118cb565b9150506109c4565b5060fb5460405163d66eaabd60e01b81526001600160a01b039091169063d66eaabd908690610adb908d908d908d9089906004016118ee565b6000604051808303818588803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b5050505050887f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375884604051610b3f91815260200190565b60405180910390a260fc546001600160a01b03166108fc85610b618487611885565b610b6b91906117da565b6040518115909202916000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015610bbf5750600054600160ff909116105b80610bd95750303b158015610bd9575060005460ff166001145b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e3565b6000805460ff191660011790558015610c5f576000805461ff0019166101001790555b6001600160a01b038416610cae57604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b60448201526064016104e3565b6001600160a01b038316610d0557604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e657200000000000060448201526064016104e3565b6001600160a01b038216610d4c57604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b60448201526064016104e3565b610d546111ce565b610d5c6111fd565b610d64611224565b610d6d8361113f565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610de3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610df1611093565b6001600160a01b038116610e565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6106ba8161113f565b610e67610ed5565b33600090815260fd60205260408120549003610e985760405163366095e160e11b81523360048201526024016104e3565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106cd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e3565b6106ba611093565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5b57610f5683611253565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb5575060408051601f3d908101601f19168201909252610fb29181019061192e565b60015b6110185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e3565b600080516020611a0683398151915281146110875760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e3565b50610f568383836112ef565b6033546001600160a01b031633146106cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e3565b6110f5611314565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611199610ed5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111223390565b600054610100900460ff166111f55760405162461bcd60e51b81526004016104e390611947565b6106cd61135d565b600054610100900460ff166106cd5760405162461bcd60e51b81526004016104e390611947565b600054610100900460ff1661124b5760405162461bcd60e51b81526004016104e390611947565b6106cd61138d565b6001600160a01b0381163b6112c05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e3565b600080516020611a0683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6112f8836113c0565b6000825111806113055750805b15610f5657610de38383611400565b60655460ff166106cd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e3565b600054610100900460ff166113845760405162461bcd60e51b81526004016104e390611947565b6106cd3361113f565b600054610100900460ff166113b45760405162461bcd60e51b81526004016104e390611947565b6065805460ff19169055565b6113c981611253565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6114685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104e3565b600080846001600160a01b03168460405161148391906119b6565b600060405180830381855af49150503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50915091506114eb8282604051806060016040528060278152602001611a26602791396114f6565b925050505b92915050565b6060831561150557508161152f565b8251156115155782518084602001fd5b8160405162461bcd60e51b81526004016104e391906119d2565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156114f0576114f0611536565b6001600160a01b03811681146106ba57600080fd5b60006020828403121561158657600080fd5b813561152f8161155f565b6000602082840312156115a357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115d357600080fd5b82356115de8161155f565b9150602083013567ffffffffffffffff808211156115fb57600080fd5b818501915085601f83011261160f57600080fd5b813581811115611621576116216115aa565b604051601f8201601f19908116603f01168101908382118183101715611649576116496115aa565b8160405282815288602084870101111561166257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f84011261169657600080fd5b50813567ffffffffffffffff8111156116ae57600080fd5b6020830191508360208260051b85010111156116c957600080fd5b9250929050565b60008060008060008060008060c0898b0312156116ec57600080fd5b88359750602089013567ffffffffffffffff8082111561170b57600080fd5b818b0191508b601f83011261171f57600080fd5b81358181111561172e57600080fd5b8c602082850101111561174057600080fd5b6020830199508098505060408b013591508082111561175e57600080fd5b5061176b8b828c01611684565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b6000806000606084860312156117a457600080fd5b83356117af8161155f565b925060208401356117bf8161155f565b915060408401356117cf8161155f565b809150509250925092565b818103818111156114f0576114f0611536565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820281158282048414176114f0576114f0611536565b634e487b7160e01b600052603260045260246000fd5b6000600182016118c4576118c4611536565b5060010190565b600063ffffffff8083168181036118e4576118e4611536565b6001019392505050565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561194057600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156119ad578181015183820152602001611995565b50506000910152565b600082516119c8818460208701611992565b9190910192915050565b60208152600082518060208401526119f1816040850160208701611992565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e6ad2eed1ecf7ce82da9919d74f91b18da2f843c4e01e2d1ecb23ce863370e2964736f6c63430008180033","nonce":55,"gas_used":1544677},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1791e5","logs":[{"address":"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000100000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xb0fe348b1cf390acbcf2589531dd83450ef6f5d45af32b4426b0eda416c91c22","block_number":12},{"info":{"transaction_hash":"0x4270863cefc53e29f2a5156b1aa25114a8a4912c3fcd6ad984ed699a20b6fdc1","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b506040516104be3803806104be83398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610345806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea2646970667358221220042ec08fde05948b20d3f0fe8bf03cfe1d6ad33ecfc3fd565cbce702b2daa70b64736f6c63430008180033000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad788","output":"0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea2646970667358221220042ec08fde05948b20d3f0fe8bf03cfe1d6ad33ecfc3fd565cbce702b2daa70b64736f6c63430008180033","gas_used":216356,"gas_limit":302820,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea2646970667358221220042ec08fde05948b20d3f0fe8bf03cfe1d6ad33ecfc3fd565cbce702b2daa70b64736f6c63430008180033","nonce":11,"gas_used":288554},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x532369","logs":[{"address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x512c15c3770e645be22b8b577a2116eae30b1a28221ddff3feb06ada33df8b1c","block_number":6},{"info":{"transaction_hash":"0x347311dd2eae16c262b7d5948ddae2c69deee29611e6e968d4aa42329bdb45bc","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":4371,"gas_limit":16304,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":53,"gas_used":25803},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x64cb","logs":[{"address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000008000000000"},"block_hash":"0x92e4276fed764d7f7cea517f882fe90c1b2ad75203e00e4eabd785b647633fb3","block_number":10},{"info":{"transaction_hash":"0xea8d6e33dc169f638f10dce03cffccc4d4e8594d0211415af99ea7330abe0032","transaction_index":3,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x99a88ec4000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e0000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf","output":"0x","gas_used":17021,"gas_limit":31821,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0x998abeb3e57409262ae5b751f60747921b33613e","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x3659cfe60000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf","output":"0x","gas_used":11547,"gas_limit":25979,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":45,"gas_used":38821},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4c5443","logs":[{"address":"0x998abeb3e57409262ae5b751f60747921b33613e","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf"],"data":"0x"}],"logsBloom":"0x00002000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000002400000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x0278ea2b38f9769073f11d2038144ac3be14552d0c813cc12085d466e172f5f3","block_number":6},{"info":{"transaction_hash":"0x5d7261cd89ce0dce6deaa0108c6defbdae0b2749f8b2ab422590c912bbd7a823","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6106948061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","output":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","gas_used":360915,"gas_limit":493364,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","nonce":0,"gas_used":441993},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x6be89","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x569d170492b4479404a15081b9c0586140961739eee97878acb1017512056a08","block_number":1},{"info":{"transaction_hash":"0x161f78fddd9b65099690d01a50167cc1be40231289bc22f8839d75e68c113d89","transaction_index":5,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":7,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x2cebb0","logs":[{"address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000010000000010000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x4e339f47e5c414499741f7c79245654e069b212d8954eb2f72386530919f3cad","block_number":3},{"info":{"transaction_hash":"0x478b433de71d6d7d869b34bde76e92a911da6042fd5f5d954b9a64c90466e933","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000851356ae760d987e095750cceb3bc6014560891c0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd0000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000264dd8283f3000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af8000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":546587,"gas_limit":724161,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0x851356ae760d987e095750cceb3bc6014560891c","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000264dd8283f3000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af8000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":538879,"gas_limit":705306,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd00"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[3,5,7],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xdd8283f3000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af8000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000","output":"0x","gas_used":524756,"gas_limit":680600,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af80000000000000000000000000000000000000000000000000000000000000032"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":3}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4},{"Log":5},{"Call":0},{"Call":1},{"Call":2},{"Log":6}]},{"parent":2,"children":[4],"idx":3,"trace":{"depth":3,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xff694a770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000","output":"0x","gas_used":170290,"gas_limit":431302,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":3,"children":[],"idx":4,"trace":{"depth":4,"success":true,"caller":"0x95401dc811bb5740090279ba06cfa8fcf6113778","address":"0x99bba657f2bbc93c02d617f8ba121cb8fc104acf","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xff694a770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000","output":"0x","gas_used":162968,"gas_limit":417393,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2}]},{"parent":2,"children":[6],"idx":5,"trace":{"depth":3,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0xf5059a5d33d5853360d16c683c16e67980206f36","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x26d941f20000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":52363,"gas_limit":260852,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":5,"children":[],"idx":6,"trace":{"depth":4,"success":true,"caller":"0xf5059a5d33d5853360d16c683c16e67980206f36","address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x26d941f20000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":45068,"gas_limit":249633,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]},{"parent":2,"children":[8],"idx":7,"trace":{"depth":3,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x998abeb3e57409262ae5b751f60747921b33613e","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x26d941f20000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":52505,"gas_limit":206486,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":7,"children":[],"idx":8,"trace":{"depth":4,"success":true,"caller":"0x998abeb3e57409262ae5b751f60747921b33613e","address":"0x8f86403a4de0bb5791fa46b8e795c547942fe4cf","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x26d941f20000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":45210,"gas_limit":196117,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Stop","out":"0x","nonce":47,"gas_used":572727},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8bd37","logs":[{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd00"],"data":"0x"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af80000000000000000000000000000000000000000000000000000000000000032"},{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0x10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d"},{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0x11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000"},{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0x26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000001000000000040000000400400000000000000800000020000000000000800000000000000000000000000000000000000100800000000000000000080000000008000002400000102000001000400000010000000008000000000000000020000000000008100010820000000080200000000000000000000400100000100000000000000000000000000000000000080000000000000000000000000000000000000200000400400000000000000000000000000000000000000000020480000280000000000041100000000002000000000000000000020000000000000400000080000800000000000000000000000000000100000408000"},"block_hash":"0x10993afddf3e72f34e40bd17ed8c8a561bdbcf5de04e195d668521ba250d94e0","block_number":7},{"info":{"transaction_hash":"0x6f2e9bd251a2571cc3055e8c9e09a3d96a581e7d28ccc39d866ea10889e1730d","transaction_index":4,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6101c06040523480156200001257600080fd5b5060405162005c5c38038062005c5c833981016040819052620000359162000254565b604080518082018252601681527f4156535265676973747279436f6f7264696e61746f720000000000000000000060208083019182528351808501909452600684526576302e302e3160d01b908401528151902060e08190527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a996101008190524660a05287938793879387939192917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620001358184846040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6080523060c05261012052505050506001600160a01b039384166101405291831661018052821661016052166101a0526200016f62000179565b50505050620002bc565b600054610100900460ff1615620001e65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000239576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200025157600080fd5b50565b600080600080608085870312156200026b57600080fd5b845162000278816200023b565b60208601519094506200028b816200023b565b60408601519093506200029e816200023b565b6060860151909250620002b1816200023b565b939692955090935050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051615898620003c46000396000818161074e0152818161113101528181611f0c01528181612b4a01528181613257015261367101526000818161069301528181611e970152818161233601528181612aca015281816131ae0152818161339f01526135f001526000818161065901528181610f0401528181611ed501528181612a4c01528181612c3201528181612cac0152818161312e01526136ed015260008181610571015281816129a20152613076015260006138f4015260006139430152600061391e01526000613877015260006138a1015260006138cb01526158986000f3fe608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e6103393660046143e3565b610940565b005b61036061034e366004614424565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461444f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144ac565b610b5e565b61033e6103ea3660046145b0565b610b8a565b61033e6103fd366004614424565b610c34565b61033e6104103660046144ac565b610c41565b6103606104233660046144ac565b609f6020526000908152604090205481565b6103606104433660046144ac565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614424565b610cf4565b61049461047f366004614424565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614600565b610e31565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614633565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144ac565b610ec2565b6103b1610541366004614424565b610eeb565b61033e6105543660046144ac565b610f77565b61033e6105673660046144ac565b610f88565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6104946105a13660046144ac565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144ac565b610f99565b60405161036a919061464e565b61033e6105ed3660046146a6565b611018565b6106056106003660046144ac565b6113ee565b60405161036a9190614749565b61033e611462565b610494610628366004614633565b6001805460ff9092161b9081161490565b61033e6106473660046147ce565b61152e565b600154610360565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6103b1610689366004614424565b611588565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b61033e6106c3366004614802565b6115b2565b61033e611707565b6103606106de3660046148b9565b61171b565b6103866106f1366004614424565b611765565b6000546103b1906201000090046001600160a01b031681565b6103b1611770565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614a57565b611789565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614b50565b611aa2565b61036060a05481565b6107c66107c1366004614bf8565b611c07565b60405161036a9190614c9d565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614ce7565b611cb6565b609c54610360565b61033e610823366004614dcd565b611d1c565b61033e610836366004614f8a565b611d2f565b6108aa610849366004614633565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144ac565b611fef565b61033e6108ff366004614424565b612065565b6109336109123660046144ac565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a919061505e565b6001546002906004908116036109715760405162461bcd60e51b81526004016109689061506c565b60405180910390fd5b60005b82811015610a48576000848483818110610990576109906150a3565b90506020020160208101906109a591906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614711565b6002811115610a0157610a01614711565b90525080519091506000610a14826121c1565b90506000610a2a826001600160c01b031661222c565b9050610a378585836122f8565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a716150a3565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b666123e5565b6001600160a01b0316600090815260c860205260409020805460ff19166001179055565b60013360009081526099602052604090206001015460ff166002811115610bb357610bb3614711565b14610be85760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c299084906150ff565b60405180910390a250565b610c3c6123e5565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb89190615112565b6001600160a01b0316336001600160a01b031614610ce85760405162461bcd60e51b81526004016109689061512f565b610cf181612444565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d659190615179565b610d815760405162461bcd60e51b81526004016109689061519b565b60015481811614610dfa5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c29565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e6e57610e6e6150a3565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610eca6123e5565b6001600160a01b0316600090815260c860205260409020805460ff19169055565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610f53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190615112565b610f7f6123e5565b610cf181612549565b610f906123e5565b610cf1816125b2565b6040805180820190915260008082526020820152610ebc6110137f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de684604051602001610ff89291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061261b565b612669565b6001546002906004908116036110405760405162461bcd60e51b81526004016109689061506c565b600061108884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90508483146110c25760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b838110156113e55760008585838181106110e1576110e16150a3565b919091013560f81c91503690506000898985818110611102576111026150a3565b905060200281019061111491906151e3565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f341092290602401602060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a4919061522c565b63ffffffff1681146111e35760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b8281101561138a576000848483818110611203576112036150a3565b905060200201602081019061121891906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561126357611263614711565b600281111561127457611274614711565b90525080519091506000611287826121c1565b905060016001600160c01b03821660ff8b161c8116146112d45760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161131f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b5061137d83838f8f8d908e6001611336919061525f565b9261134393929190615272565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122f892505050565b50909250506001016111e7565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a2505050508060010190506110c5565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561144857611448614711565b600281111561145957611459614711565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d39190615179565b6114ef5760405162461bcd60e51b81526004016109689061519b565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6115366123e5565b609654829060ff908116908216106115795760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115838383612789565b505050565b609c818154811061159857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146115f95760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116669187908790819084018382808284376000920191909152505060965460ff1691506126f89050565b90506000611673836121c1565b905060018085015460ff16600281111561168f5761168f614711565b1480156116a457506001600160c01b03821615155b80156116c257506116c26001600160c01b0383811690831681161490565b156113e5576113e58787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b61170f6123e5565b6117196000612bbe565b565b600061175b7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a8787878787604051602001610ff89695949392919061529c565b9695505050505050565b6000610ebc826121c1565b60006117846064546001600160a01b031690565b905090565b60018054600091908116036117b05760405162461bcd60e51b81526004016109689061506c565b33600090815260c8602052604090205460ff166118015760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118395760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118453388612c10565b90506118a533828888808060200260200160405190810160405280939291908181526020016000905b8282101561189a5761188b60408302860136819003810190615324565b8152602001906001019061186e565b505050505087612d45565b60006118ec33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b90506000609760008e8e6000818110611907576119076150a3565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b909104909416928101929092528451805192945091611972576119726150a3565b602002602001015163ffffffff161115611a9357611a178d8d600081811061199c5761199c6150a3565b9050013560f81c60f81b60f81c83604001516000815181106119c0576119c06150a3565b60200260200101513385602001516000815181106119e0576119e06150a3565b60200260200101518c8c60008181106119fb576119fb6150a3565b905060400201803603810190611a119190615324565b866132e5565b611a9388886000818110611a2d57611a2d6150a3565b9050604002016020016020810190611a4591906144ac565b8e8e600090600192611a5993929190615272565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b50505050505050505050505050565b6001805460009190811603611ac95760405162461bcd60e51b81526004016109689061506c565b33600090815260c8602052604090205460ff16611b1a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b263385612c10565b90506000611b6f33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611bb757611bb76150a3565b602002602001015163ffffffff161115611bfc5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c2457611c246144c9565b604051908082528060200260200182016040528015611c4d578160200160208202803683370190505b50905060005b8351811015611cae57611c7f85858381518110611c7257611c726150a3565b60200260200101516134b4565b828281518110611c9157611c916150a3565b63ffffffff90921660209283029190910190910152600101611c53565b509392505050565b60018054600290811603611cdc5760405162461bcd60e51b81526004016109689061506c565b6115833384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b611d246123e5565b61158383838361356d565b600054610100900460ff1615808015611d4f5750600054600160ff909116105b80611d695750303b158015611d69575060005460ff166001145b611dcc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611def576000805461ff0019166101001790555b82518451148015611e01575081518351145b611e325760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e3b89612bbe565b611e45868661374f565b611e4e88612549565b611e57876125b2565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166001600160a01b03199283161790925585548085018755850180547f0000000000000000000000000000000000000000000000000000000000000000841690831617905585549384019095559190920180547f000000000000000000000000000000000000000000000000000000000000000090921691909316179091555b8451811015611f9e57611f96858281518110611f5557611f556150a3565b6020026020010151858381518110611f6f57611f6f6150a3565b6020026020010151858481518110611f8957611f896150a3565b602002602001015161356d565b600101611f37565b508015611bfc576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b611ff76123e5565b6001600160a01b03811661205c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610cf181612bbe565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dc9190615112565b6001600160a01b0316336001600160a01b03161461210c5760405162461bcd60e51b81526004016109689061512f565b60015419811960015419161461218a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c29565b6000818152609860205260408120548082036121e05750600092915050565b60008381526098602052604090206121f9600183615340565b81548110612209576122096150a3565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061223a8461383f565b61ffff166001600160401b03811115612255576122556144c9565b6040519080825280601f01601f19166020018201604052801561227f576020820181803683370190505b5090506000805b825182108015612297575061010081105b156122ee576001811b9350858416156122de578060f81b8383815181106122c0576122c06150a3565b60200101906001600160f81b031916908160001a9053508160010191505b6122e781615353565b9050612286565b5090949350505050565b60018260200151600281111561231057612310614711565b1461231a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366acfefe9061236f9088908690889060040161536c565b6020604051808303816000875af115801561238e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b2919061539c565b90506001600160c01b038116156123de576123de856123d9836001600160c01b031661222c565b612836565b5050505050565b336123ee611770565b6001600160a01b0316146117195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166124d25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ebc61262861386a565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b604080518082019091526000808252602082015260008080612699600080516020615843833981519152866153db565b90505b6126a581613991565b909350915060008051602061584383398151915282830983036126de576040805180820190915290815260208101919091529392505050565b60008051602061584383398151915260018208905061269c565b60008061270484613a13565b9050808360ff166001901b116127825760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff16600281111561286a5761286a614711565b1461289f5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b6096546000906128b390859060ff166126f8565b905060006128c0836121c1565b90506001600160c01b0382166129015760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129186001600160c01b0383811690831681161490565b61294d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129668482613b9b565b6001600160c01b038116612a355760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401600060405180830381600087803b1580156129e657600080fd5b505af11580156129fa573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe590612a83908a908a906004016153ef565b600060405180830381600087803b158015612a9d57600080fd5b505af1158015612ab1573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612b039087908a90600401615413565b600060405180830381600087803b158015612b1d57600080fd5b505af1158015612b31573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612b839087908a90600401615413565b600060405180830381600087803b158015612b9d57600080fd5b505af1158015612bb1573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906313542a4e90602401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f919061542c565b90506000819003610ebc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf79ce588484612ce487610f99565b6040518463ffffffff1660e01b8152600401612d0293929190615445565b6020604051808303816000875af1158015612d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612782919061542c565b6020808201516000908152609a909152604090205460ff1615612d935760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612dcf5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e1a918891889188919061171b565b8351613d5c565b612e4560405180606001604052806060815260200160608152602001606081525090565b6000612e8d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90506000612e9a886121c1565b90506001600160c01b038216612edb5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f1d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612f55919061525f565b10612f8a5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612f948982613b9b565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051612fc491906150ff565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff166002811115612ffe57612ffe614711565b14613117576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff19169083600281111561305957613059614711565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150639926ee7d906130ae908d9089906004016154b5565b600060405180830381600087803b1580156130c857600080fd5b505af11580156130dc573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb2795290613167908d908c908c90600401615529565b600060405180830381600087803b15801561318157600080fd5b505af1158015613195573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250632550477791506131eb908d908d908d908d9060040161554e565b6000604051808303816000875af115801561320a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261323291908101906155de565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d9061328f908c908c908c90600401615641565b6000604051808303816000875af11580156132ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132d6919081019061565b565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361333e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff161461337d5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa1580156133ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341291906156f4565b905061341e8185613f16565b6001600160601b0316866001600160601b0316116134645760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b61346e8885613f3a565b6001600160601b0316816001600160601b031610611bfc5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561353c5760016134d98284615340565b6134e39190615340565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613516576135166150a3565b60009182526020909120015463ffffffff1611613534575050610ebc565b6001016134c5565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135ac5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b6135b7816001615711565b6096805460ff191660ff92909216919091179055806135d68186612789565b60405160016296b58960e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ff694a77906136299084908890889060040161572a565b600060405180830381600087803b15801561364357600080fd5b505af1158015613657573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b1580156136bf57600080fd5b505af11580156136d3573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561373b57600080fd5b505af1158015611bfc573d6000803e3d6000fd5b6000546201000090046001600160a01b031615801561377657506001600160a01b03821615155b6137f85760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261383b82612444565b5050565b6000805b8215610ebc57613854600184615340565b9092169180613862816157a6565b915050613843565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156138c357507f000000000000000000000000000000000000000000000000000000000000000046145b156138ed57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615843833981519152600360008051602061584383398151915286600080516020615843833981519152888909090890506000613a07827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615843833981519152613f54565b91959194509092505050565b600061010082511115613a9c5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613aad57506000919050565b60008083600081518110613ac357613ac36150a3565b0160200151600160f89190911c81901b92505b8451811015613b9257848181518110613af157613af16150a3565b0160200151600160f89190911c1b9150828211613b865760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613ad6565b50909392505050565b60008281526098602052604081205490819003613c43576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613c5c600184615340565b81548110613c6c57613c6c6150a3565b6000918252602090912001805490915063ffffffff438116911603613cae5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613e7657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613d9c9086908690600401615413565b602060405180830381865afa158015613db9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ddd91906157c7565b6001600160e01b031916146115835760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613e8a8383613ffd565b6001600160a01b0316146115835760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f309061ffff16856157f1565b612782919061581c565b604081015160009061271090613f309061ffff16856157f1565b600080613f5f614363565b613f67614381565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fa457fe5b5082613ff25760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061400c8585614019565b91509150611cae81614087565b600080825160410361404f5760208301516040840151606085015160001a6140438782858561423d565b94509450505050614080565b8251604003614078576020830151604084015161406d86838361432a565b935093505050614080565b506000905060025b9250929050565b600081600481111561409b5761409b614711565b036140a35750565b60018160048111156140b7576140b7614711565b036141045760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561411857614118614711565b036141655760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b600381600481111561417957614179614711565b036141d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b60048160048111156141e5576141e5614711565b03610cf15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142745750600090506003614321565b8460ff16601b1415801561428c57508460ff16601c14155b1561429d5750600090506004614321565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156142f1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661431a57600060019250925050614321565b9150600090505b94509492505050565b6000806001600160ff1b0383168161434760ff86901c601b61525f565b90506143558782888561423d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f8401126143b157600080fd5b5081356001600160401b038111156143c857600080fd5b6020830191508360208260051b850101111561408057600080fd5b600080602083850312156143f657600080fd5b82356001600160401b0381111561440c57600080fd5b6144188582860161439f565b90969095509350505050565b60006020828403121561443657600080fd5b5035919050565b63ffffffff81168114610cf157600080fd5b60008060006060848603121561446457600080fd5b8335925060208401356144768161443d565b929592945050506040919091013590565b6001600160a01b0381168114610cf157600080fd5b80356144a781614487565b919050565b6000602082840312156144be57600080fd5b813561278281614487565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614501576145016144c9565b60405290565b604080519081016001600160401b0381118282101715614501576145016144c9565b604051601f8201601f191681016001600160401b0381118282101715614551576145516144c9565b604052919050565b60006001600160401b03831115614572576145726144c9565b614585601f8401601f1916602001614529565b905082815283838301111561459957600080fd5b828260208301376000602084830101529392505050565b6000602082840312156145c257600080fd5b81356001600160401b038111156145d857600080fd5b8201601f810184136145e957600080fd5b6145f884823560208401614559565b949350505050565b6000806040838503121561461357600080fd5b50508035926020909101359150565b803560ff811681146144a757600080fd5b60006020828403121561464557600080fd5b61278282614622565b815181526020808301519082015260408101610ebc565b60008083601f84011261467757600080fd5b5081356001600160401b0381111561468e57600080fd5b60208301915083602082850101111561408057600080fd5b600080600080604085870312156146bc57600080fd5b84356001600160401b03808211156146d357600080fd5b6146df8883890161439f565b909650945060208701359150808211156146f857600080fd5b5061470587828801614665565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061474557634e487b7160e01b600052602160045260246000fd5b9052565b81518152602080830151604083019161476490840182614727565b5092915050565b803561ffff811681146144a757600080fd5b60006060828403121561478f57600080fd5b6147976144df565b905081356147a48161443d565b81526147b26020830161476b565b60208201526147c36040830161476b565b604082015292915050565b600080608083850312156147e157600080fd5b6147ea83614622565b91506147f9846020850161477d565b90509250929050565b60008060006040848603121561481757600080fd5b833561482281614487565b925060208401356001600160401b0381111561483d57600080fd5b61484986828701614665565b9497909650939450505050565b60006001600160401b0382111561486f5761486f6144c9565b5060051b60200190565b60006040828403121561488b57600080fd5b614893614507565b905061489e82614622565b815260208201356148ae81614487565b602082015292915050565b600080600080600060a086880312156148d157600080fd5b85356148dc81614487565b945060208681013594506040808801356001600160401b0381111561490057600080fd5b8801601f81018a1361491157600080fd5b803561492461491f82614856565b614529565b8082825260208201915060208360061b85010192508c83111561494657600080fd5b6020840193505b8284101561496e5761495f8d85614879565b8252928401929085019061494d565b999c989b5098996060810135995060800135979650505050505050565b6000610100828403121561499e57600080fd5b50919050565b60008083601f8401126149b657600080fd5b5081356001600160401b038111156149cd57600080fd5b6020830191508360208260061b850101111561408057600080fd5b6000606082840312156149fa57600080fd5b614a026144df565b905081356001600160401b03811115614a1a57600080fd5b8201601f81018413614a2b57600080fd5b614a3a84823560208401614559565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c031215614a7657600080fd5b89356001600160401b0380821115614a8d57600080fd5b614a998d838e01614665565b909b50995060208c0135915080821115614ab257600080fd5b614abe8d838e01614665565b9099509750879150614ad38d60408e0161498b565b96506101408c0135915080821115614aea57600080fd5b614af68d838e016149a4565b90965094506101608c0135915080821115614b1057600080fd5b614b1c8d838e016149e8565b93506101808c0135915080821115614b3357600080fd5b50614b408c828d016149e8565b9150509295985092959850929598565b6000806000806000806101608789031215614b6a57600080fd5b86356001600160401b0380821115614b8157600080fd5b614b8d8a838b01614665565b90985096506020890135915080821115614ba657600080fd5b614bb28a838b01614665565b9096509450849150614bc78a60408b0161498b565b9350610140890135915080821115614bde57600080fd5b50614beb89828a016149e8565b9150509295509295509295565b60008060408385031215614c0b57600080fd5b8235614c168161443d565b91506020838101356001600160401b03811115614c3257600080fd5b8401601f81018613614c4357600080fd5b8035614c5161491f82614856565b81815260059190911b82018301908381019088831115614c7057600080fd5b928401925b82841015614c8e57833582529284019290840190614c75565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b81811015614cdb57835163ffffffff1683529284019291840191600101614cb9565b50909695505050505050565b60008060208385031215614cfa57600080fd5b82356001600160401b03811115614d1057600080fd5b61441885828601614665565b6001600160601b0381168114610cf157600080fd5b600082601f830112614d4257600080fd5b81356020614d5261491f83614856565b82815260069290921b84018101918181019086841115614d7157600080fd5b8286015b84811015614dc25760408189031215614d8e5760008081fd5b614d96614507565b8135614da181614487565b815281850135614db081614d1c565b81860152835291830191604001614d75565b509695505050505050565b600080600060a08486031215614de257600080fd5b614dec858561477d565b92506060840135614dfc81614d1c565b915060808401356001600160401b03811115614e1757600080fd5b614e2386828701614d31565b9150509250925092565b600082601f830112614e3e57600080fd5b81356020614e4e61491f83614856565b808382526020820191506060602060608602880101945087851115614e7257600080fd5b602087015b85811015614e9657614e89898261477d565b8452928401928101614e77565b5090979650505050505050565b600082601f830112614eb457600080fd5b81356020614ec461491f83614856565b8083825260208201915060208460051b870101935086841115614ee657600080fd5b602086015b84811015614dc2578035614efe81614d1c565b8352918301918301614eeb565b600082601f830112614f1c57600080fd5b81356020614f2c61491f83614856565b82815260059290921b84018101918181019086841115614f4b57600080fd5b8286015b84811015614dc25780356001600160401b03811115614f6e5760008081fd5b614f7c8986838b0101614d31565b845250918301918301614f4f565b600080600080600080600080610100898b031215614fa757600080fd5b614fb08961449c565b9750614fbe60208a0161449c565b9650614fcc60408a0161449c565b9550614fda60608a0161449c565b94506080890135935060a08901356001600160401b0380821115614ffd57600080fd5b6150098c838d01614e2d565b945060c08b013591508082111561501f57600080fd5b61502b8c838d01614ea3565b935060e08b013591508082111561504157600080fd5b5061504e8b828c01614f0b565b9150509295985092959890939650565b60208101610ebc8284614727565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156150df576020818501810151868301820152016150c3565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061278260208301846150b9565b60006020828403121561512457600080fd5b815161278281614487565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561518b57600080fd5b8151801515811461278257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e198436030181126151fa57600080fd5b8301803591506001600160401b0382111561521457600080fd5b6020019150600581901b360382131561408057600080fd5b60006020828403121561523e57600080fd5b81516127828161443d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ebc57610ebc615249565b6000808585111561528257600080fd5b8386111561528f57600080fd5b5050820193919092039150565b600060c08201888352602060018060a01b03808a166020860152604089604087015260c0606087015283895180865260e08801915060208b01955060005b81811015615304578651805160ff16845286015185168684015295850195918301916001016152da565b505060808701989098525050505060a09091019190915250949350505050565b60006040828403121561533657600080fd5b6127828383614879565b81810381811115610ebc57610ebc615249565b60006001820161536557615365615249565b5060010190565b60018060a01b038416815282602082015260606040820152600061539360608301846150b9565b95945050505050565b6000602082840312156153ae57600080fd5b81516001600160c01b038116811461278257600080fd5b634e487b7160e01b600052601260045260246000fd5b6000826153ea576153ea6153c5565b500690565b6001600160a01b03831681526040602082018190526000906145f8908301846150b9565b8281526040602082015260006145f860408301846150b9565b60006020828403121561543e57600080fd5b5051919050565b6001600160a01b0384168152610160810161546d602083018580358252602090810135910152565b615487606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e0840137825161012083015260208301516101408301526145f8565b60018060a01b03831681526040602082015260008251606060408401526154df60a08401826150b9565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906153939083018486615500565b60018060a01b038516815283602082015260606040820152600061175b606083018486615500565b600082601f83011261558757600080fd5b8151602061559761491f83614856565b8083825260208201915060208460051b8701019350868411156155b957600080fd5b602086015b84811015614dc25780516155d181614d1c565b83529183019183016155be565b600080604083850312156155f157600080fd5b82516001600160401b038082111561560857600080fd5b61561486838701615576565b9350602085015191508082111561562a57600080fd5b5061563785828601615576565b9150509250929050565b838152604060208201526000615393604083018486615500565b6000602080838503121561566e57600080fd5b82516001600160401b0381111561568457600080fd5b8301601f8101851361569557600080fd5b80516156a361491f82614856565b81815260059190911b820183019083810190878311156156c257600080fd5b928401925b828410156156e95783516156da8161443d565b825292840192908401906156c7565b979650505050505050565b60006020828403121561570657600080fd5b815161278281614d1c565b60ff8181168382160190811115610ebc57610ebc615249565b60006060820160ff8616835260206001600160601b03808716602086015260406060604087015283875180865260808801915060208901955060005b8181101561579657865180516001600160a01b031684528601518516868401529585019591830191600101615766565b50909a9950505050505050505050565b600061ffff8083168181036157bd576157bd615249565b6001019392505050565b6000602082840312156157d957600080fd5b81516001600160e01b03198116811461278257600080fd5b6001600160601b0381811683821602808216919082811461581457615814615249565b505092915050565b60006001600160601b0380841680615836576158366153c5565b9216919091049291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a26469706673582212201548f9af61e602bb8d6829508f90d0118c101ac55f6e1786ac860c8fab06071f64736f6c634300081800330000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e800000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36","output":"0x608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e6103393660046143e3565b610940565b005b61036061034e366004614424565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461444f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144ac565b610b5e565b61033e6103ea3660046145b0565b610b8a565b61033e6103fd366004614424565b610c34565b61033e6104103660046144ac565b610c41565b6103606104233660046144ac565b609f6020526000908152604090205481565b6103606104433660046144ac565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614424565b610cf4565b61049461047f366004614424565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614600565b610e31565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614633565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144ac565b610ec2565b6103b1610541366004614424565b610eeb565b61033e6105543660046144ac565b610f77565b61033e6105673660046144ac565b610f88565b6103b17f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e881565b6104946105a13660046144ac565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144ac565b610f99565b60405161036a919061464e565b61033e6105ed3660046146a6565b611018565b6106056106003660046144ac565b6113ee565b60405161036a9190614749565b61033e611462565b610494610628366004614633565b6001805460ff9092161b9081161490565b61033e6106473660046147ce565b61152e565b600154610360565b6103b17f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b6103b1610689366004614424565b611588565b6103b17f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b61033e6106c3366004614802565b6115b2565b61033e611707565b6103606106de3660046148b9565b61171b565b6103866106f1366004614424565b611765565b6000546103b1906201000090046001600160a01b031681565b6103b1611770565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614a57565b611789565b6103b17f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614b50565b611aa2565b61036060a05481565b6107c66107c1366004614bf8565b611c07565b60405161036a9190614c9d565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614ce7565b611cb6565b609c54610360565b61033e610823366004614dcd565b611d1c565b61033e610836366004614f8a565b611d2f565b6108aa610849366004614633565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144ac565b611fef565b61033e6108ff366004614424565b612065565b6109336109123660046144ac565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a919061505e565b6001546002906004908116036109715760405162461bcd60e51b81526004016109689061506c565b60405180910390fd5b60005b82811015610a48576000848483818110610990576109906150a3565b90506020020160208101906109a591906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614711565b6002811115610a0157610a01614711565b90525080519091506000610a14826121c1565b90506000610a2a826001600160c01b031661222c565b9050610a378585836122f8565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a716150a3565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b666123e5565b6001600160a01b0316600090815260c860205260409020805460ff19166001179055565b60013360009081526099602052604090206001015460ff166002811115610bb357610bb3614711565b14610be85760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c299084906150ff565b60405180910390a250565b610c3c6123e5565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb89190615112565b6001600160a01b0316336001600160a01b031614610ce85760405162461bcd60e51b81526004016109689061512f565b610cf181612444565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d659190615179565b610d815760405162461bcd60e51b81526004016109689061519b565b60015481811614610dfa5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c29565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e6e57610e6e6150a3565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610eca6123e5565b6001600160a01b0316600090815260c860205260409020805460ff19169055565b6040516308f6629d60e31b8152600481018290526000907f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b0316906347b314e890602401602060405180830381865afa158015610f53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190615112565b610f7f6123e5565b610cf181612549565b610f906123e5565b610cf1816125b2565b6040805180820190915260008082526020820152610ebc6110137f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de684604051602001610ff89291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061261b565b612669565b6001546002906004908116036110405760405162461bcd60e51b81526004016109689061506c565b600061108884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90508483146110c25760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b838110156113e55760008585838181106110e1576110e16150a3565b919091013560f81c91503690506000898985818110611102576111026150a3565b905060200281019061111491906151e3565b6040516379a0849160e11b815260ff8616600482015291935091507f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b03169063f341092290602401602060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a4919061522c565b63ffffffff1681146111e35760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b8281101561138a576000848483818110611203576112036150a3565b905060200201602081019061121891906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561126357611263614711565b600281111561127457611274614711565b90525080519091506000611287826121c1565b905060016001600160c01b03821660ff8b161c8116146112d45760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161131f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b5061137d83838f8f8d908e6001611336919061525f565b9261134393929190615272565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122f892505050565b50909250506001016111e7565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a2505050508060010190506110c5565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561144857611448614711565b600281111561145957611459614711565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d39190615179565b6114ef5760405162461bcd60e51b81526004016109689061519b565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6115366123e5565b609654829060ff908116908216106115795760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115838383612789565b505050565b609c818154811061159857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146115f95760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116669187908790819084018382808284376000920191909152505060965460ff1691506126f89050565b90506000611673836121c1565b905060018085015460ff16600281111561168f5761168f614711565b1480156116a457506001600160c01b03821615155b80156116c257506116c26001600160c01b0383811690831681161490565b156113e5576113e58787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b61170f6123e5565b6117196000612bbe565b565b600061175b7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a8787878787604051602001610ff89695949392919061529c565b9695505050505050565b6000610ebc826121c1565b60006117846064546001600160a01b031690565b905090565b60018054600091908116036117b05760405162461bcd60e51b81526004016109689061506c565b33600090815260c8602052604090205460ff166118015760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118395760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118453388612c10565b90506118a533828888808060200260200160405190810160405280939291908181526020016000905b8282101561189a5761188b60408302860136819003810190615324565b8152602001906001019061186e565b505050505087612d45565b60006118ec33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b90506000609760008e8e6000818110611907576119076150a3565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b909104909416928101929092528451805192945091611972576119726150a3565b602002602001015163ffffffff161115611a9357611a178d8d600081811061199c5761199c6150a3565b9050013560f81c60f81b60f81c83604001516000815181106119c0576119c06150a3565b60200260200101513385602001516000815181106119e0576119e06150a3565b60200260200101518c8c60008181106119fb576119fb6150a3565b905060400201803603810190611a119190615324565b866132e5565b611a9388886000818110611a2d57611a2d6150a3565b9050604002016020016020810190611a4591906144ac565b8e8e600090600192611a5993929190615272565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b50505050505050505050505050565b6001805460009190811603611ac95760405162461bcd60e51b81526004016109689061506c565b33600090815260c8602052604090205460ff16611b1a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b263385612c10565b90506000611b6f33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611bb757611bb76150a3565b602002602001015163ffffffff161115611bfc5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c2457611c246144c9565b604051908082528060200260200182016040528015611c4d578160200160208202803683370190505b50905060005b8351811015611cae57611c7f85858381518110611c7257611c726150a3565b60200260200101516134b4565b828281518110611c9157611c916150a3565b63ffffffff90921660209283029190910190910152600101611c53565b509392505050565b60018054600290811603611cdc5760405162461bcd60e51b81526004016109689061506c565b6115833384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b611d246123e5565b61158383838361356d565b600054610100900460ff1615808015611d4f5750600054600160ff909116105b80611d695750303b158015611d69575060005460ff166001145b611dcc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611def576000805461ff0019166101001790555b82518451148015611e01575081518351145b611e325760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e3b89612bbe565b611e45868661374f565b611e4e88612549565b611e57876125b2565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881166001600160a01b03199283161790925585548085018755850180547f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e841690831617905585549384019095559190920180547f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3690921691909316179091555b8451811015611f9e57611f96858281518110611f5557611f556150a3565b6020026020010151858381518110611f6f57611f6f6150a3565b6020026020010151858481518110611f8957611f896150a3565b602002602001015161356d565b600101611f37565b508015611bfc576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b611ff76123e5565b6001600160a01b03811661205c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610cf181612bbe565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dc9190615112565b6001600160a01b0316336001600160a01b03161461210c5760405162461bcd60e51b81526004016109689061512f565b60015419811960015419161461218a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c29565b6000818152609860205260408120548082036121e05750600092915050565b60008381526098602052604090206121f9600183615340565b81548110612209576122096150a3565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061223a8461383f565b61ffff166001600160401b03811115612255576122556144c9565b6040519080825280601f01601f19166020018201604052801561227f576020820181803683370190505b5090506000805b825182108015612297575061010081105b156122ee576001811b9350858416156122de578060f81b8383815181106122c0576122c06150a3565b60200101906001600160f81b031916908160001a9053508160010191505b6122e781615353565b9050612286565b5090949350505050565b60018260200151600281111561231057612310614711565b1461231a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816906366acfefe9061236f9088908690889060040161536c565b6020604051808303816000875af115801561238e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b2919061539c565b90506001600160c01b038116156123de576123de856123d9836001600160c01b031661222c565b612836565b5050505050565b336123ee611770565b6001600160a01b0316146117195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166124d25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ebc61262861386a565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b604080518082019091526000808252602082015260008080612699600080516020615843833981519152866153db565b90505b6126a581613991565b909350915060008051602061584383398151915282830983036126de576040805180820190915290815260208101919091529392505050565b60008051602061584383398151915260018208905061269c565b60008061270484613a13565b9050808360ff166001901b116127825760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff16600281111561286a5761286a614711565b1461289f5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b6096546000906128b390859060ff166126f8565b905060006128c0836121c1565b90506001600160c01b0382166129015760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129186001600160c01b0383811690831681161490565b61294d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129668482613b9b565b6001600160c01b038116612a355760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169063a364f4da90602401600060405180830381600087803b1580156129e657600080fd5b505af11580156129fa573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e169063f4e24fe590612a83908a908a906004016153ef565b600060405180830381600087803b158015612a9d57600080fd5b505af1158015612ab1573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816925063bd29b8cd9150612b039087908a90600401615413565b600060405180830381600087803b158015612b1d57600080fd5b505af1158015612b31573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616925063bd29b8cd9150612b839087908a90600401615413565b600060405180830381600087803b158015612b9d57600080fd5b505af1158015612bb1573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e909116906313542a4e90602401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f919061542c565b90506000819003610ebc577f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031663bf79ce588484612ce487610f99565b6040518463ffffffff1660e01b8152600401612d0293929190615445565b6020604051808303816000875af1158015612d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612782919061542c565b6020808201516000908152609a909152604090205460ff1615612d935760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612dcf5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e1a918891889188919061171b565b8351613d5c565b612e4560405180606001604052806060815260200160608152602001606081525090565b6000612e8d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90506000612e9a886121c1565b90506001600160c01b038216612edb5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f1d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612f55919061525f565b10612f8a5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612f948982613b9b565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051612fc491906150ff565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff166002811115612ffe57612ffe614711565b14613117576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff19169083600281111561305957613059614711565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169150639926ee7d906130ae908d9089906004016154b5565b600060405180830381600087803b1580156130c857600080fd5b505af11580156130dc573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e1690633fb2795290613167908d908c908c90600401615529565b600060405180830381600087803b15801561318157600080fd5b505af1158015613195573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169250632550477791506131eb908d908d908d908d9060040161554e565b6000604051808303816000875af115801561320a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261323291908101906155de565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36169062bff04d9061328f908c908c908c90600401615641565b6000604051808303816000875af11580156132ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132d6919081019061565b565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361333e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff161461337d5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690635401ed2790604401602060405180830381865afa1580156133ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341291906156f4565b905061341e8185613f16565b6001600160601b0316866001600160601b0316116134645760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b61346e8885613f3a565b6001600160601b0316816001600160601b031610611bfc5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561353c5760016134d98284615340565b6134e39190615340565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613516576135166150a3565b60009182526020909120015463ffffffff1611613534575050610ebc565b6001016134c5565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135ac5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b6135b7816001615711565b6096805460ff191660ff92909216919091179055806135d68186612789565b60405160016296b58960e01b031981526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169063ff694a77906136299084908890889060040161572a565b600060405180830381600087803b15801561364357600080fd5b505af1158015613657573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b031692506326d941f29150602401600060405180830381600087803b1580156136bf57600080fd5b505af11580156136d3573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561373b57600080fd5b505af1158015611bfc573d6000803e3d6000fd5b6000546201000090046001600160a01b031615801561377657506001600160a01b03821615155b6137f85760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261383b82612444565b5050565b6000805b8215610ebc57613854600184615340565b9092169180613862816157a6565b915050613843565b6000306001600160a01b037f0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd00161480156138c357507f0000000000000000000000000000000000000000000000000000000000007a6946145b156138ed57507fc6374306ca0c3d05fd3f0cebbec8fc4308f71679c06b0e30a95d8c9709d43dae90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f6ec8a99f0e7f9ebde7354a446dcb9423f3af9c58f386a53c59c5b384f9e82d11828401527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a9960608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615843833981519152600360008051602061584383398151915286600080516020615843833981519152888909090890506000613a07827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615843833981519152613f54565b91959194509092505050565b600061010082511115613a9c5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613aad57506000919050565b60008083600081518110613ac357613ac36150a3565b0160200151600160f89190911c81901b92505b8451811015613b9257848181518110613af157613af16150a3565b0160200151600160f89190911c1b9150828211613b865760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613ad6565b50909392505050565b60008281526098602052604081205490819003613c43576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613c5c600184615340565b81548110613c6c57613c6c6150a3565b6000918252602090912001805490915063ffffffff438116911603613cae5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613e7657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613d9c9086908690600401615413565b602060405180830381865afa158015613db9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ddd91906157c7565b6001600160e01b031916146115835760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613e8a8383613ffd565b6001600160a01b0316146115835760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f309061ffff16856157f1565b612782919061581c565b604081015160009061271090613f309061ffff16856157f1565b600080613f5f614363565b613f67614381565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fa457fe5b5082613ff25760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061400c8585614019565b91509150611cae81614087565b600080825160410361404f5760208301516040840151606085015160001a6140438782858561423d565b94509450505050614080565b8251604003614078576020830151604084015161406d86838361432a565b935093505050614080565b506000905060025b9250929050565b600081600481111561409b5761409b614711565b036140a35750565b60018160048111156140b7576140b7614711565b036141045760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561411857614118614711565b036141655760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b600381600481111561417957614179614711565b036141d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b60048160048111156141e5576141e5614711565b03610cf15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142745750600090506003614321565b8460ff16601b1415801561428c57508460ff16601c14155b1561429d5750600090506004614321565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156142f1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661431a57600060019250925050614321565b9150600090505b94509492505050565b6000806001600160ff1b0383168161434760ff86901c601b61525f565b90506143558782888561423d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f8401126143b157600080fd5b5081356001600160401b038111156143c857600080fd5b6020830191508360208260051b850101111561408057600080fd5b600080602083850312156143f657600080fd5b82356001600160401b0381111561440c57600080fd5b6144188582860161439f565b90969095509350505050565b60006020828403121561443657600080fd5b5035919050565b63ffffffff81168114610cf157600080fd5b60008060006060848603121561446457600080fd5b8335925060208401356144768161443d565b929592945050506040919091013590565b6001600160a01b0381168114610cf157600080fd5b80356144a781614487565b919050565b6000602082840312156144be57600080fd5b813561278281614487565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614501576145016144c9565b60405290565b604080519081016001600160401b0381118282101715614501576145016144c9565b604051601f8201601f191681016001600160401b0381118282101715614551576145516144c9565b604052919050565b60006001600160401b03831115614572576145726144c9565b614585601f8401601f1916602001614529565b905082815283838301111561459957600080fd5b828260208301376000602084830101529392505050565b6000602082840312156145c257600080fd5b81356001600160401b038111156145d857600080fd5b8201601f810184136145e957600080fd5b6145f884823560208401614559565b949350505050565b6000806040838503121561461357600080fd5b50508035926020909101359150565b803560ff811681146144a757600080fd5b60006020828403121561464557600080fd5b61278282614622565b815181526020808301519082015260408101610ebc565b60008083601f84011261467757600080fd5b5081356001600160401b0381111561468e57600080fd5b60208301915083602082850101111561408057600080fd5b600080600080604085870312156146bc57600080fd5b84356001600160401b03808211156146d357600080fd5b6146df8883890161439f565b909650945060208701359150808211156146f857600080fd5b5061470587828801614665565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061474557634e487b7160e01b600052602160045260246000fd5b9052565b81518152602080830151604083019161476490840182614727565b5092915050565b803561ffff811681146144a757600080fd5b60006060828403121561478f57600080fd5b6147976144df565b905081356147a48161443d565b81526147b26020830161476b565b60208201526147c36040830161476b565b604082015292915050565b600080608083850312156147e157600080fd5b6147ea83614622565b91506147f9846020850161477d565b90509250929050565b60008060006040848603121561481757600080fd5b833561482281614487565b925060208401356001600160401b0381111561483d57600080fd5b61484986828701614665565b9497909650939450505050565b60006001600160401b0382111561486f5761486f6144c9565b5060051b60200190565b60006040828403121561488b57600080fd5b614893614507565b905061489e82614622565b815260208201356148ae81614487565b602082015292915050565b600080600080600060a086880312156148d157600080fd5b85356148dc81614487565b945060208681013594506040808801356001600160401b0381111561490057600080fd5b8801601f81018a1361491157600080fd5b803561492461491f82614856565b614529565b8082825260208201915060208360061b85010192508c83111561494657600080fd5b6020840193505b8284101561496e5761495f8d85614879565b8252928401929085019061494d565b999c989b5098996060810135995060800135979650505050505050565b6000610100828403121561499e57600080fd5b50919050565b60008083601f8401126149b657600080fd5b5081356001600160401b038111156149cd57600080fd5b6020830191508360208260061b850101111561408057600080fd5b6000606082840312156149fa57600080fd5b614a026144df565b905081356001600160401b03811115614a1a57600080fd5b8201601f81018413614a2b57600080fd5b614a3a84823560208401614559565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c031215614a7657600080fd5b89356001600160401b0380821115614a8d57600080fd5b614a998d838e01614665565b909b50995060208c0135915080821115614ab257600080fd5b614abe8d838e01614665565b9099509750879150614ad38d60408e0161498b565b96506101408c0135915080821115614aea57600080fd5b614af68d838e016149a4565b90965094506101608c0135915080821115614b1057600080fd5b614b1c8d838e016149e8565b93506101808c0135915080821115614b3357600080fd5b50614b408c828d016149e8565b9150509295985092959850929598565b6000806000806000806101608789031215614b6a57600080fd5b86356001600160401b0380821115614b8157600080fd5b614b8d8a838b01614665565b90985096506020890135915080821115614ba657600080fd5b614bb28a838b01614665565b9096509450849150614bc78a60408b0161498b565b9350610140890135915080821115614bde57600080fd5b50614beb89828a016149e8565b9150509295509295509295565b60008060408385031215614c0b57600080fd5b8235614c168161443d565b91506020838101356001600160401b03811115614c3257600080fd5b8401601f81018613614c4357600080fd5b8035614c5161491f82614856565b81815260059190911b82018301908381019088831115614c7057600080fd5b928401925b82841015614c8e57833582529284019290840190614c75565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b81811015614cdb57835163ffffffff1683529284019291840191600101614cb9565b50909695505050505050565b60008060208385031215614cfa57600080fd5b82356001600160401b03811115614d1057600080fd5b61441885828601614665565b6001600160601b0381168114610cf157600080fd5b600082601f830112614d4257600080fd5b81356020614d5261491f83614856565b82815260069290921b84018101918181019086841115614d7157600080fd5b8286015b84811015614dc25760408189031215614d8e5760008081fd5b614d96614507565b8135614da181614487565b815281850135614db081614d1c565b81860152835291830191604001614d75565b509695505050505050565b600080600060a08486031215614de257600080fd5b614dec858561477d565b92506060840135614dfc81614d1c565b915060808401356001600160401b03811115614e1757600080fd5b614e2386828701614d31565b9150509250925092565b600082601f830112614e3e57600080fd5b81356020614e4e61491f83614856565b808382526020820191506060602060608602880101945087851115614e7257600080fd5b602087015b85811015614e9657614e89898261477d565b8452928401928101614e77565b5090979650505050505050565b600082601f830112614eb457600080fd5b81356020614ec461491f83614856565b8083825260208201915060208460051b870101935086841115614ee657600080fd5b602086015b84811015614dc2578035614efe81614d1c565b8352918301918301614eeb565b600082601f830112614f1c57600080fd5b81356020614f2c61491f83614856565b82815260059290921b84018101918181019086841115614f4b57600080fd5b8286015b84811015614dc25780356001600160401b03811115614f6e5760008081fd5b614f7c8986838b0101614d31565b845250918301918301614f4f565b600080600080600080600080610100898b031215614fa757600080fd5b614fb08961449c565b9750614fbe60208a0161449c565b9650614fcc60408a0161449c565b9550614fda60608a0161449c565b94506080890135935060a08901356001600160401b0380821115614ffd57600080fd5b6150098c838d01614e2d565b945060c08b013591508082111561501f57600080fd5b61502b8c838d01614ea3565b935060e08b013591508082111561504157600080fd5b5061504e8b828c01614f0b565b9150509295985092959890939650565b60208101610ebc8284614727565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156150df576020818501810151868301820152016150c3565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061278260208301846150b9565b60006020828403121561512457600080fd5b815161278281614487565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561518b57600080fd5b8151801515811461278257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e198436030181126151fa57600080fd5b8301803591506001600160401b0382111561521457600080fd5b6020019150600581901b360382131561408057600080fd5b60006020828403121561523e57600080fd5b81516127828161443d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ebc57610ebc615249565b6000808585111561528257600080fd5b8386111561528f57600080fd5b5050820193919092039150565b600060c08201888352602060018060a01b03808a166020860152604089604087015260c0606087015283895180865260e08801915060208b01955060005b81811015615304578651805160ff16845286015185168684015295850195918301916001016152da565b505060808701989098525050505060a09091019190915250949350505050565b60006040828403121561533657600080fd5b6127828383614879565b81810381811115610ebc57610ebc615249565b60006001820161536557615365615249565b5060010190565b60018060a01b038416815282602082015260606040820152600061539360608301846150b9565b95945050505050565b6000602082840312156153ae57600080fd5b81516001600160c01b038116811461278257600080fd5b634e487b7160e01b600052601260045260246000fd5b6000826153ea576153ea6153c5565b500690565b6001600160a01b03831681526040602082018190526000906145f8908301846150b9565b8281526040602082015260006145f860408301846150b9565b60006020828403121561543e57600080fd5b5051919050565b6001600160a01b0384168152610160810161546d602083018580358252602090810135910152565b615487606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e0840137825161012083015260208301516101408301526145f8565b60018060a01b03831681526040602082015260008251606060408401526154df60a08401826150b9565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906153939083018486615500565b60018060a01b038516815283602082015260606040820152600061175b606083018486615500565b600082601f83011261558757600080fd5b8151602061559761491f83614856565b8083825260208201915060208460051b8701019350868411156155b957600080fd5b602086015b84811015614dc25780516155d181614d1c565b83529183019183016155be565b600080604083850312156155f157600080fd5b82516001600160401b038082111561560857600080fd5b61561486838701615576565b9350602085015191508082111561562a57600080fd5b5061563785828601615576565b9150509250929050565b838152604060208201526000615393604083018486615500565b6000602080838503121561566e57600080fd5b82516001600160401b0381111561568457600080fd5b8301601f8101851361569557600080fd5b80516156a361491f82614856565b81815260059190911b820183019083810190878311156156c257600080fd5b928401925b828410156156e95783516156da8161443d565b825292840192908401906156c7565b979650505050505050565b60006020828403121561570657600080fd5b815161278281614d1c565b60ff8181168382160190811115610ebc57610ebc615249565b60006060820160ff8616835260206001600160601b03808716602086015260406060604087015283875180865260808801915060208901955060005b8181101561579657865180516001600160a01b031684528601518516868401529585019591830191600101615766565b50909a9950505050505050505050565b600061ffff8083168181036157bd576157bd615249565b6001019392505050565b6000602082840312156157d957600080fd5b81516001600160e01b03198116811461278257600080fd5b6001600160601b0381811683821602808216919082811461581457615814615249565b505092915050565b60006001600160601b0380841680615836576158366153c5565b9216919091049291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a26469706673582212201548f9af61e602bb8d6829508f90d0118c101ac55f6e1786ac860c8fab06071f64736f6c63430008180033","gas_used":4566336,"gas_limit":6058978,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e6103393660046143e3565b610940565b005b61036061034e366004614424565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461444f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144ac565b610b5e565b61033e6103ea3660046145b0565b610b8a565b61033e6103fd366004614424565b610c34565b61033e6104103660046144ac565b610c41565b6103606104233660046144ac565b609f6020526000908152604090205481565b6103606104433660046144ac565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614424565b610cf4565b61049461047f366004614424565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614600565b610e31565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614633565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144ac565b610ec2565b6103b1610541366004614424565b610eeb565b61033e6105543660046144ac565b610f77565b61033e6105673660046144ac565b610f88565b6103b17f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e881565b6104946105a13660046144ac565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144ac565b610f99565b60405161036a919061464e565b61033e6105ed3660046146a6565b611018565b6106056106003660046144ac565b6113ee565b60405161036a9190614749565b61033e611462565b610494610628366004614633565b6001805460ff9092161b9081161490565b61033e6106473660046147ce565b61152e565b600154610360565b6103b17f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b6103b1610689366004614424565b611588565b6103b17f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b61033e6106c3366004614802565b6115b2565b61033e611707565b6103606106de3660046148b9565b61171b565b6103866106f1366004614424565b611765565b6000546103b1906201000090046001600160a01b031681565b6103b1611770565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614a57565b611789565b6103b17f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614b50565b611aa2565b61036060a05481565b6107c66107c1366004614bf8565b611c07565b60405161036a9190614c9d565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614ce7565b611cb6565b609c54610360565b61033e610823366004614dcd565b611d1c565b61033e610836366004614f8a565b611d2f565b6108aa610849366004614633565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144ac565b611fef565b61033e6108ff366004614424565b612065565b6109336109123660046144ac565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a919061505e565b6001546002906004908116036109715760405162461bcd60e51b81526004016109689061506c565b60405180910390fd5b60005b82811015610a48576000848483818110610990576109906150a3565b90506020020160208101906109a591906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614711565b6002811115610a0157610a01614711565b90525080519091506000610a14826121c1565b90506000610a2a826001600160c01b031661222c565b9050610a378585836122f8565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a716150a3565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b666123e5565b6001600160a01b0316600090815260c860205260409020805460ff19166001179055565b60013360009081526099602052604090206001015460ff166002811115610bb357610bb3614711565b14610be85760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c299084906150ff565b60405180910390a250565b610c3c6123e5565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb89190615112565b6001600160a01b0316336001600160a01b031614610ce85760405162461bcd60e51b81526004016109689061512f565b610cf181612444565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d659190615179565b610d815760405162461bcd60e51b81526004016109689061519b565b60015481811614610dfa5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c29565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e6e57610e6e6150a3565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610eca6123e5565b6001600160a01b0316600090815260c860205260409020805460ff19169055565b6040516308f6629d60e31b8152600481018290526000907f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b0316906347b314e890602401602060405180830381865afa158015610f53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190615112565b610f7f6123e5565b610cf181612549565b610f906123e5565b610cf1816125b2565b6040805180820190915260008082526020820152610ebc6110137f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de684604051602001610ff89291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061261b565b612669565b6001546002906004908116036110405760405162461bcd60e51b81526004016109689061506c565b600061108884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90508483146110c25760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b838110156113e55760008585838181106110e1576110e16150a3565b919091013560f81c91503690506000898985818110611102576111026150a3565b905060200281019061111491906151e3565b6040516379a0849160e11b815260ff8616600482015291935091507f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b03169063f341092290602401602060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a4919061522c565b63ffffffff1681146111e35760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b8281101561138a576000848483818110611203576112036150a3565b905060200201602081019061121891906144ac565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561126357611263614711565b600281111561127457611274614711565b90525080519091506000611287826121c1565b905060016001600160c01b03821660ff8b161c8116146112d45760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161131f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b5061137d83838f8f8d908e6001611336919061525f565b9261134393929190615272565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122f892505050565b50909250506001016111e7565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a2505050508060010190506110c5565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561144857611448614711565b600281111561145957611459614711565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d39190615179565b6114ef5760405162461bcd60e51b81526004016109689061519b565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6115366123e5565b609654829060ff908116908216106115795760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115838383612789565b505050565b609c818154811061159857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146115f95760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116669187908790819084018382808284376000920191909152505060965460ff1691506126f89050565b90506000611673836121c1565b905060018085015460ff16600281111561168f5761168f614711565b1480156116a457506001600160c01b03821615155b80156116c257506116c26001600160c01b0383811690831681161490565b156113e5576113e58787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b61170f6123e5565b6117196000612bbe565b565b600061175b7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a8787878787604051602001610ff89695949392919061529c565b9695505050505050565b6000610ebc826121c1565b60006117846064546001600160a01b031690565b905090565b60018054600091908116036117b05760405162461bcd60e51b81526004016109689061506c565b33600090815260c8602052604090205460ff166118015760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118395760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118453388612c10565b90506118a533828888808060200260200160405190810160405280939291908181526020016000905b8282101561189a5761188b60408302860136819003810190615324565b8152602001906001019061186e565b505050505087612d45565b60006118ec33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b90506000609760008e8e6000818110611907576119076150a3565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b909104909416928101929092528451805192945091611972576119726150a3565b602002602001015163ffffffff161115611a9357611a178d8d600081811061199c5761199c6150a3565b9050013560f81c60f81b60f81c83604001516000815181106119c0576119c06150a3565b60200260200101513385602001516000815181106119e0576119e06150a3565b60200260200101518c8c60008181106119fb576119fb6150a3565b905060400201803603810190611a119190615324565b866132e5565b611a9388886000818110611a2d57611a2d6150a3565b9050604002016020016020810190611a4591906144ac565b8e8e600090600192611a5993929190615272565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b50505050505050505050505050565b6001805460009190811603611ac95760405162461bcd60e51b81526004016109689061506c565b33600090815260c8602052604090205460ff16611b1a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b263385612c10565b90506000611b6f33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e21915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611bb757611bb76150a3565b602002602001015163ffffffff161115611bfc5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c2457611c246144c9565b604051908082528060200260200182016040528015611c4d578160200160208202803683370190505b50905060005b8351811015611cae57611c7f85858381518110611c7257611c726150a3565b60200260200101516134b4565b828281518110611c9157611c916150a3565b63ffffffff90921660209283029190910190910152600101611c53565b509392505050565b60018054600290811603611cdc5760405162461bcd60e51b81526004016109689061506c565b6115833384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061283692505050565b611d246123e5565b61158383838361356d565b600054610100900460ff1615808015611d4f5750600054600160ff909116105b80611d695750303b158015611d69575060005460ff166001145b611dcc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611def576000805461ff0019166101001790555b82518451148015611e01575081518351145b611e325760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e3b89612bbe565b611e45868661374f565b611e4e88612549565b611e57876125b2565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881166001600160a01b03199283161790925585548085018755850180547f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e841690831617905585549384019095559190920180547f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3690921691909316179091555b8451811015611f9e57611f96858281518110611f5557611f556150a3565b6020026020010151858381518110611f6f57611f6f6150a3565b6020026020010151858481518110611f8957611f896150a3565b602002602001015161356d565b600101611f37565b508015611bfc576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b611ff76123e5565b6001600160a01b03811661205c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610cf181612bbe565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dc9190615112565b6001600160a01b0316336001600160a01b03161461210c5760405162461bcd60e51b81526004016109689061512f565b60015419811960015419161461218a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c29565b6000818152609860205260408120548082036121e05750600092915050565b60008381526098602052604090206121f9600183615340565b81548110612209576122096150a3565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061223a8461383f565b61ffff166001600160401b03811115612255576122556144c9565b6040519080825280601f01601f19166020018201604052801561227f576020820181803683370190505b5090506000805b825182108015612297575061010081105b156122ee576001811b9350858416156122de578060f81b8383815181106122c0576122c06150a3565b60200101906001600160f81b031916908160001a9053508160010191505b6122e781615353565b9050612286565b5090949350505050565b60018260200151600281111561231057612310614711565b1461231a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816906366acfefe9061236f9088908690889060040161536c565b6020604051808303816000875af115801561238e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b2919061539c565b90506001600160c01b038116156123de576123de856123d9836001600160c01b031661222c565b612836565b5050505050565b336123ee611770565b6001600160a01b0316146117195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166124d25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ebc61262861386a565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b604080518082019091526000808252602082015260008080612699600080516020615843833981519152866153db565b90505b6126a581613991565b909350915060008051602061584383398151915282830983036126de576040805180820190915290815260208101919091529392505050565b60008051602061584383398151915260018208905061269c565b60008061270484613a13565b9050808360ff166001901b116127825760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff16600281111561286a5761286a614711565b1461289f5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b6096546000906128b390859060ff166126f8565b905060006128c0836121c1565b90506001600160c01b0382166129015760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129186001600160c01b0383811690831681161490565b61294d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129668482613b9b565b6001600160c01b038116612a355760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169063a364f4da90602401600060405180830381600087803b1580156129e657600080fd5b505af11580156129fa573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e169063f4e24fe590612a83908a908a906004016153ef565b600060405180830381600087803b158015612a9d57600080fd5b505af1158015612ab1573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816925063bd29b8cd9150612b039087908a90600401615413565b600060405180830381600087803b158015612b1d57600080fd5b505af1158015612b31573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616925063bd29b8cd9150612b839087908a90600401615413565b600060405180830381600087803b158015612b9d57600080fd5b505af1158015612bb1573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e909116906313542a4e90602401602060405180830381865afa158015612c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9f919061542c565b90506000819003610ebc577f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031663bf79ce588484612ce487610f99565b6040518463ffffffff1660e01b8152600401612d0293929190615445565b6020604051808303816000875af1158015612d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612782919061542c565b6020808201516000908152609a909152604090205460ff1615612d935760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612dcf5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e1a918891889188919061171b565b8351613d5c565b612e4560405180606001604052806060815260200160608152602001606081525090565b6000612e8d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506126f89050565b90506000612e9a886121c1565b90506001600160c01b038216612edb5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f1d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612f55919061525f565b10612f8a5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612f948982613b9b565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051612fc491906150ff565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff166002811115612ffe57612ffe614711565b14613117576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff19169083600281111561305957613059614711565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169150639926ee7d906130ae908d9089906004016154b5565b600060405180830381600087803b1580156130c857600080fd5b505af11580156130dc573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e1690633fb2795290613167908d908c908c90600401615529565b600060405180830381600087803b15801561318157600080fd5b505af1158015613195573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169250632550477791506131eb908d908d908d908d9060040161554e565b6000604051808303816000875af115801561320a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261323291908101906155de565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36169062bff04d9061328f908c908c908c90600401615641565b6000604051808303816000875af11580156132ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132d6919081019061565b565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361333e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff161461337d5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690635401ed2790604401602060405180830381865afa1580156133ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341291906156f4565b905061341e8185613f16565b6001600160601b0316866001600160601b0316116134645760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b61346e8885613f3a565b6001600160601b0316816001600160601b031610611bfc5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561353c5760016134d98284615340565b6134e39190615340565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613516576135166150a3565b60009182526020909120015463ffffffff1611613534575050610ebc565b6001016134c5565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135ac5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b6135b7816001615711565b6096805460ff191660ff92909216919091179055806135d68186612789565b60405160016296b58960e01b031981526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169063ff694a77906136299084908890889060040161572a565b600060405180830381600087803b15801561364357600080fd5b505af1158015613657573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b031692506326d941f29150602401600060405180830381600087803b1580156136bf57600080fd5b505af11580156136d3573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561373b57600080fd5b505af1158015611bfc573d6000803e3d6000fd5b6000546201000090046001600160a01b031615801561377657506001600160a01b03821615155b6137f85760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261383b82612444565b5050565b6000805b8215610ebc57613854600184615340565b9092169180613862816157a6565b915050613843565b6000306001600160a01b037f0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd00161480156138c357507f0000000000000000000000000000000000000000000000000000000000007a6946145b156138ed57507fc6374306ca0c3d05fd3f0cebbec8fc4308f71679c06b0e30a95d8c9709d43dae90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f6ec8a99f0e7f9ebde7354a446dcb9423f3af9c58f386a53c59c5b384f9e82d11828401527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a9960608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615843833981519152600360008051602061584383398151915286600080516020615843833981519152888909090890506000613a07827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615843833981519152613f54565b91959194509092505050565b600061010082511115613a9c5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613aad57506000919050565b60008083600081518110613ac357613ac36150a3565b0160200151600160f89190911c81901b92505b8451811015613b9257848181518110613af157613af16150a3565b0160200151600160f89190911c1b9150828211613b865760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613ad6565b50909392505050565b60008281526098602052604081205490819003613c43576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613c5c600184615340565b81548110613c6c57613c6c6150a3565b6000918252602090912001805490915063ffffffff438116911603613cae5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613e7657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613d9c9086908690600401615413565b602060405180830381865afa158015613db9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ddd91906157c7565b6001600160e01b031916146115835760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613e8a8383613ffd565b6001600160a01b0316146115835760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f309061ffff16856157f1565b612782919061581c565b604081015160009061271090613f309061ffff16856157f1565b600080613f5f614363565b613f67614381565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613fa457fe5b5082613ff25760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061400c8585614019565b91509150611cae81614087565b600080825160410361404f5760208301516040840151606085015160001a6140438782858561423d565b94509450505050614080565b8251604003614078576020830151604084015161406d86838361432a565b935093505050614080565b506000905060025b9250929050565b600081600481111561409b5761409b614711565b036140a35750565b60018160048111156140b7576140b7614711565b036141045760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561411857614118614711565b036141655760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b600381600481111561417957614179614711565b036141d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b60048160048111156141e5576141e5614711565b03610cf15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142745750600090506003614321565b8460ff16601b1415801561428c57508460ff16601c14155b1561429d5750600090506004614321565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156142f1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661431a57600060019250925050614321565b9150600090505b94509492505050565b6000806001600160ff1b0383168161434760ff86901c601b61525f565b90506143558782888561423d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f8401126143b157600080fd5b5081356001600160401b038111156143c857600080fd5b6020830191508360208260051b850101111561408057600080fd5b600080602083850312156143f657600080fd5b82356001600160401b0381111561440c57600080fd5b6144188582860161439f565b90969095509350505050565b60006020828403121561443657600080fd5b5035919050565b63ffffffff81168114610cf157600080fd5b60008060006060848603121561446457600080fd5b8335925060208401356144768161443d565b929592945050506040919091013590565b6001600160a01b0381168114610cf157600080fd5b80356144a781614487565b919050565b6000602082840312156144be57600080fd5b813561278281614487565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614501576145016144c9565b60405290565b604080519081016001600160401b0381118282101715614501576145016144c9565b604051601f8201601f191681016001600160401b0381118282101715614551576145516144c9565b604052919050565b60006001600160401b03831115614572576145726144c9565b614585601f8401601f1916602001614529565b905082815283838301111561459957600080fd5b828260208301376000602084830101529392505050565b6000602082840312156145c257600080fd5b81356001600160401b038111156145d857600080fd5b8201601f810184136145e957600080fd5b6145f884823560208401614559565b949350505050565b6000806040838503121561461357600080fd5b50508035926020909101359150565b803560ff811681146144a757600080fd5b60006020828403121561464557600080fd5b61278282614622565b815181526020808301519082015260408101610ebc565b60008083601f84011261467757600080fd5b5081356001600160401b0381111561468e57600080fd5b60208301915083602082850101111561408057600080fd5b600080600080604085870312156146bc57600080fd5b84356001600160401b03808211156146d357600080fd5b6146df8883890161439f565b909650945060208701359150808211156146f857600080fd5b5061470587828801614665565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061474557634e487b7160e01b600052602160045260246000fd5b9052565b81518152602080830151604083019161476490840182614727565b5092915050565b803561ffff811681146144a757600080fd5b60006060828403121561478f57600080fd5b6147976144df565b905081356147a48161443d565b81526147b26020830161476b565b60208201526147c36040830161476b565b604082015292915050565b600080608083850312156147e157600080fd5b6147ea83614622565b91506147f9846020850161477d565b90509250929050565b60008060006040848603121561481757600080fd5b833561482281614487565b925060208401356001600160401b0381111561483d57600080fd5b61484986828701614665565b9497909650939450505050565b60006001600160401b0382111561486f5761486f6144c9565b5060051b60200190565b60006040828403121561488b57600080fd5b614893614507565b905061489e82614622565b815260208201356148ae81614487565b602082015292915050565b600080600080600060a086880312156148d157600080fd5b85356148dc81614487565b945060208681013594506040808801356001600160401b0381111561490057600080fd5b8801601f81018a1361491157600080fd5b803561492461491f82614856565b614529565b8082825260208201915060208360061b85010192508c83111561494657600080fd5b6020840193505b8284101561496e5761495f8d85614879565b8252928401929085019061494d565b999c989b5098996060810135995060800135979650505050505050565b6000610100828403121561499e57600080fd5b50919050565b60008083601f8401126149b657600080fd5b5081356001600160401b038111156149cd57600080fd5b6020830191508360208260061b850101111561408057600080fd5b6000606082840312156149fa57600080fd5b614a026144df565b905081356001600160401b03811115614a1a57600080fd5b8201601f81018413614a2b57600080fd5b614a3a84823560208401614559565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c031215614a7657600080fd5b89356001600160401b0380821115614a8d57600080fd5b614a998d838e01614665565b909b50995060208c0135915080821115614ab257600080fd5b614abe8d838e01614665565b9099509750879150614ad38d60408e0161498b565b96506101408c0135915080821115614aea57600080fd5b614af68d838e016149a4565b90965094506101608c0135915080821115614b1057600080fd5b614b1c8d838e016149e8565b93506101808c0135915080821115614b3357600080fd5b50614b408c828d016149e8565b9150509295985092959850929598565b6000806000806000806101608789031215614b6a57600080fd5b86356001600160401b0380821115614b8157600080fd5b614b8d8a838b01614665565b90985096506020890135915080821115614ba657600080fd5b614bb28a838b01614665565b9096509450849150614bc78a60408b0161498b565b9350610140890135915080821115614bde57600080fd5b50614beb89828a016149e8565b9150509295509295509295565b60008060408385031215614c0b57600080fd5b8235614c168161443d565b91506020838101356001600160401b03811115614c3257600080fd5b8401601f81018613614c4357600080fd5b8035614c5161491f82614856565b81815260059190911b82018301908381019088831115614c7057600080fd5b928401925b82841015614c8e57833582529284019290840190614c75565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b81811015614cdb57835163ffffffff1683529284019291840191600101614cb9565b50909695505050505050565b60008060208385031215614cfa57600080fd5b82356001600160401b03811115614d1057600080fd5b61441885828601614665565b6001600160601b0381168114610cf157600080fd5b600082601f830112614d4257600080fd5b81356020614d5261491f83614856565b82815260069290921b84018101918181019086841115614d7157600080fd5b8286015b84811015614dc25760408189031215614d8e5760008081fd5b614d96614507565b8135614da181614487565b815281850135614db081614d1c565b81860152835291830191604001614d75565b509695505050505050565b600080600060a08486031215614de257600080fd5b614dec858561477d565b92506060840135614dfc81614d1c565b915060808401356001600160401b03811115614e1757600080fd5b614e2386828701614d31565b9150509250925092565b600082601f830112614e3e57600080fd5b81356020614e4e61491f83614856565b808382526020820191506060602060608602880101945087851115614e7257600080fd5b602087015b85811015614e9657614e89898261477d565b8452928401928101614e77565b5090979650505050505050565b600082601f830112614eb457600080fd5b81356020614ec461491f83614856565b8083825260208201915060208460051b870101935086841115614ee657600080fd5b602086015b84811015614dc2578035614efe81614d1c565b8352918301918301614eeb565b600082601f830112614f1c57600080fd5b81356020614f2c61491f83614856565b82815260059290921b84018101918181019086841115614f4b57600080fd5b8286015b84811015614dc25780356001600160401b03811115614f6e5760008081fd5b614f7c8986838b0101614d31565b845250918301918301614f4f565b600080600080600080600080610100898b031215614fa757600080fd5b614fb08961449c565b9750614fbe60208a0161449c565b9650614fcc60408a0161449c565b9550614fda60608a0161449c565b94506080890135935060a08901356001600160401b0380821115614ffd57600080fd5b6150098c838d01614e2d565b945060c08b013591508082111561501f57600080fd5b61502b8c838d01614ea3565b935060e08b013591508082111561504157600080fd5b5061504e8b828c01614f0b565b9150509295985092959890939650565b60208101610ebc8284614727565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156150df576020818501810151868301820152016150c3565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061278260208301846150b9565b60006020828403121561512457600080fd5b815161278281614487565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561518b57600080fd5b8151801515811461278257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e198436030181126151fa57600080fd5b8301803591506001600160401b0382111561521457600080fd5b6020019150600581901b360382131561408057600080fd5b60006020828403121561523e57600080fd5b81516127828161443d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ebc57610ebc615249565b6000808585111561528257600080fd5b8386111561528f57600080fd5b5050820193919092039150565b600060c08201888352602060018060a01b03808a166020860152604089604087015260c0606087015283895180865260e08801915060208b01955060005b81811015615304578651805160ff16845286015185168684015295850195918301916001016152da565b505060808701989098525050505060a09091019190915250949350505050565b60006040828403121561533657600080fd5b6127828383614879565b81810381811115610ebc57610ebc615249565b60006001820161536557615365615249565b5060010190565b60018060a01b038416815282602082015260606040820152600061539360608301846150b9565b95945050505050565b6000602082840312156153ae57600080fd5b81516001600160c01b038116811461278257600080fd5b634e487b7160e01b600052601260045260246000fd5b6000826153ea576153ea6153c5565b500690565b6001600160a01b03831681526040602082018190526000906145f8908301846150b9565b8281526040602082015260006145f860408301846150b9565b60006020828403121561543e57600080fd5b5051919050565b6001600160a01b0384168152610160810161546d602083018580358252602090810135910152565b615487606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e0840137825161012083015260208301516101408301526145f8565b60018060a01b03831681526040602082015260008251606060408401526154df60a08401826150b9565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906153939083018486615500565b60018060a01b038516815283602082015260606040820152600061175b606083018486615500565b600082601f83011261558757600080fd5b8151602061559761491f83614856565b8083825260208201915060208460051b8701019350868411156155b957600080fd5b602086015b84811015614dc25780516155d181614d1c565b83529183019183016155be565b600080604083850312156155f157600080fd5b82516001600160401b038082111561560857600080fd5b61561486838701615576565b9350602085015191508082111561562a57600080fd5b5061563785828601615576565b9150509250929050565b838152604060208201526000615393604083018486615500565b6000602080838503121561566e57600080fd5b82516001600160401b0381111561568457600080fd5b8301601f8101851361569557600080fd5b80516156a361491f82614856565b81815260059190911b820183019083810190878311156156c257600080fd5b928401925b828410156156e95783516156da8161443d565b825292840192908401906156c7565b979650505050505050565b60006020828403121561570657600080fd5b815161278281614d1c565b60ff8181168382160190811115610ebc57610ebc615249565b60006060820160ff8616835260206001600160601b03808716602086015260406060604087015283875180865260808801915060208901955060005b8181101561579657865180516001600160a01b031684528601518516868401529585019591830191600101615766565b50909a9950505050505050505050565b600061ffff8083168181036157bd576157bd615249565b6001019392505050565b6000602082840312156157d957600080fd5b81516001600160e01b03198116811461278257600080fd5b6001600160601b0381811683821602808216919082811461581457615814615249565b505092915050565b60006001600160601b0380841680615836576158366153c5565b9216919091049291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a26469706673582212201548f9af61e602bb8d6829508f90d0118c101ac55f6e1786ac860c8fab06071f64736f6c63430008180033","nonce":46,"gas_used":4981914},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x9858dd","logs":[{"address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x0278ea2b38f9769073f11d2038144ac3be14552d0c813cc12085d466e172f5f3","block_number":6},{"info":{"transaction_hash":"0xb02326216f7078ab71c5aeb30702c1981388c12cefe2b4368b3600f6686ea6d4","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6101006040523480156200001257600080fd5b5060405162005beb38038062005beb833981016040819052620000359162000140565b6001600160a01b0380841660805280821660c052821660a0526200005862000065565b50504660e0525062000194565b600054610100900460ff1615620000d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000125576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013d57600080fd5b50565b6000806000606084860312156200015657600080fd5b8351620001638162000127565b6020850151909350620001768162000127565b6040850151909250620001898162000127565b809150509250925092565b60805160a05160c05160e0516159c26200022960003960006126560152600081816105b10152818161101d0152818161139901528181611be5015281816129b001528181613e5b0152614347015260006107620152600081816104f901528181610feb0152818161136701528181611c7901528181612a7d01528181612c0001528181613f8101526143ed01526159c26000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614954565b610de8565b005b6103da6103ea3660046149a7565b610f2d565b6103da6103fd3660046149cb565b610fe0565b6103da610410366004614a0c565b611097565b6103da610423366004614a25565b6111d6565b61035a6104363660046149a7565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149cb565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a90565b611218565b6103da6104bc3660046149cb565b61135c565b61035a6104cf3660046149a7565b609b6020526000908152604090205481565b6103da6104ef366004614b37565b61140c565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610364565b61051b6105413660046149a7565b6001600160a01b039081166000908152609960205260409020600101541690565b6105756105703660046149a7565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e3c565b611626565b610575610606366004614e78565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614ea9565b611656565b6103da610644366004614a0c565b6116ef565b61051b6106573660046149a7565b609a602052600090815260409020546001600160a01b031681565b6105756106803660046149a7565b611700565b6103da611721565b61035a61069b366004614f38565b609860209081526000928352604080842090915290825290205481565b6103da6106c6366004615019565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150a9565b611961565b6040516103649190615134565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da610738366004615147565b611a33565b61035a61074b3660046149a7565b609f6020526000908152604090205481565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b610575610792366004614a0c565b609e6020526000908152604090205460ff1681565b6105756107b536600461517c565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec3660046149a7565b60a16020526000908152604090205481565b61086e61080c3660046149a7565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151a8565b611b05565b61035a62034bc081565b6108d46108cf3660046149a7565b611bbe565b60405161036492919061522a565b6103ba6108f03660046149a7565b611f75565b6103da61090336600461524f565b61242e565b6103da6109163660046152a7565b61254b565b6103da6109293660046149a7565b6125dc565b61035a612652565b6103da610944366004614a0c565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152c3565b905060200201602081019061098691906149a7565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152d9565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614bd9565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152c3565b9050602002810190610b4e9190615310565b610b5c906020810190615330565b9050878783818110610b7057610b706152c3565b9050602002810190610b829190615310565b610b8c9080615330565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152c3565b9050602002810190610c269190615310565b610c379060608101906040016149a7565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152c3565b9050602002810190610cdc9190615310565b610ced9060608101906040016149a7565b8a8a86818110610cff57610cff6152c3565b9050602002810190610d119190615310565b610d1b9080615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152c3565b9050602002810190610d739190615310565b610d81906020810190615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152c3565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615379565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153cb565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa491906153fa565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615417565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061103f5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61105b5760405162461bcd60e51b8152600401610ab590615461565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154be565b61111f5760405162461bcd60e51b8152600401610ab5906154db565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806113bb5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113d75760405162461bcd60e51b8152600401610ab590615461565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152c3565b90506020028101906114bd9190615523565b8989848181106114cf576114cf6152c3565b90506020028101906114e19190615330565b8989868181106114f3576114f36152c3565b9050602002013588888781811061150c5761150c6152c3565b90506020020160208101906115219190615539565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154be565b6115e75760405162461bcd60e51b8152600401610ab5906154db565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155ca565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614bd9565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152c3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152c3565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153cb565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5291906155dd565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea9190810190615655565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152c3565b602002602001018181525050611f68565b8351611dc7906001615725565b6001600160401b03811115611dde57611dde614bd9565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614bd9565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152c3565b6020026020010151838281518110611e8757611e876152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152c3565b6020026020010151828281518110611ed357611ed36152c3565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615738565b81518110611f1b57611f1b6152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615738565b81518110611f5b57611f5b6152c3565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152d9565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614bd9565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152c3565b602002602001015182600081518110612396576123966152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152c3565b6020026020010151816000815181106123e3576123e36152c3565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152c3565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f00000000000000000000000000000000000000000000000000000000000000004603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270691906153fa565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615417565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152c3565b602002602001015186858151811061295b5761295b6152c3565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152c3565b60200260200101516001600160a01b031603612a60577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb89888584815181106129f0576129f06152c3565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612abc57612abc6152c3565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154be565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612c4057612c406152c3565b6020026020010151868581518110612c5a57612c5a6152c3565b60200260200101516040518463ffffffff1660e01b8152600401612c809392919061574b565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361576f565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d999083908590615788565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157a1565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157a1565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c82826157de565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615379565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152d9565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152c3565b6020026020010151858581518110613220576132206152c3565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615738565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f9392919061574b565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152c3565b90506020020160208101906134be91906149a7565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152c3565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615725565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f9392919061574b565b60006139776105f387615841565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157a1565b63ffffffff16613a1d9190615725565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab560608701604088016149a7565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615330565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615330565b9050811015613d23574360a16000613c0b60a08b018b615330565b85818110613c1b57613c1b6152c3565b9050602002016020810190613c3091906149a7565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157a1565b63ffffffff16613c6a9190615725565b1115613c885760405162461bcd60e51b8152600401610ab59061584d565b613d1b613c9860208901896149a7565b33613ca660a08b018b615330565b85818110613cb657613cb66152c3565b9050602002016020810190613ccb91906149a7565b613cd860c08c018c615330565b86818110613ce857613ce86152c3565b905060200201358a8a87818110613d0157613d016152c3565b9050602002016020810190613d1691906149a7565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615330565b9050811015614114574360a16000613d6c60a08c018c615330565b85818110613d7c57613d7c6152c3565b9050602002016020810190613d9191906149a7565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157a1565b63ffffffff16613dcb9190615725565b1115613de95760405162461bcd60e51b8152600401610ab59061584d565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615330565b83818110613e1b57613e1b6152c3565b9050602002016020810190613e3091906149a7565b6001600160a01b031603613f7f576000613e4d60208a018a6149a7565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613e8e60c08e018e615330565b87818110613e9e57613e9e6152c3565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1691906155dd565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615330565b88818110613f5c57613f5c6152c3565b9050602002016020810190613f7191906149a7565b856138ee565b50505061410c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea133898985818110613fc157613fc16152c3565b9050602002016020810190613fd691906149a7565b613fe360a08d018d615330565b86818110613ff357613ff36152c3565b905060200201602081019061400891906149a7565b61401560c08e018e615330565b87818110614025576140256152c3565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615330565b858181106140ce576140ce6152c3565b90506020020160208101906140e391906149a7565b6140f060c08d018d615330565b86818110614100576141006152c3565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061419290869086906004016158d5565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d3919061592c565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b1300906143809088908890879060040161574b565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615956565b036144f25750565b600181600481111561450657614506615956565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615956565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615956565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615956565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615725565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b6020808252825182820181905260009190848201906040850190845b818110156148ef578351835292840192918401916001016148d3565b50909695505050505050565b60006060828403121561490d57600080fd5b50919050565b60008083601f84011261492557600080fd5b5081356001600160401b0381111561493c57600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561496957600080fd5b61497385856148fb565b925060608401356001600160401b0381111561498e57600080fd5b61499a86828701614913565b9497909650939450505050565b6000602082840312156149b957600080fd5b81356149c481614837565b9392505050565b6000806000606084860312156149e057600080fd5b83356149eb81614837565b925060208401356149fb81614837565b929592945050506040919091013590565b600060208284031215614a1e57600080fd5b5035919050565b60008060008060408587031215614a3b57600080fd5b84356001600160401b0380821115614a5257600080fd5b614a5e888389016147b2565b90965094506020870135915080821115614a7757600080fd5b50614a84878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aac57600080fd5b8835614ab781614837565b97506020890135614ac781614837565b9650604089013595506060890135945060808901356001600160401b0380821115614af157600080fd5b614afd8c838d016147b2565b909650945060a08b0135915080821115614b1657600080fd5b50614b238b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b5357600080fd5b88356001600160401b0380821115614b6a57600080fd5b614b768c838d016147b2565b909a50985060208b0135915080821115614b8f57600080fd5b614b9b8c838d016147b2565b909850965060408b0135915080821115614bb457600080fd5b614bc08c838d016147b2565b909650945060608b0135915080821115614b1657600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1157614c11614bd9565b60405290565b604080519081016001600160401b0381118282101715614c1157614c11614bd9565b604051601f8201601f191681016001600160401b0381118282101715614c6157614c61614bd9565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c69565b60006001600160401b03821115614c9f57614c9f614bd9565b5060051b60200190565b600082601f830112614cba57600080fd5b81356020614ccf614cca83614c86565b614c39565b8083825260208201915060208460051b870101935086841115614cf157600080fd5b602086015b84811015614d16578035614d0981614837565b8352918301918301614cf6565b509695505050505050565b600082601f830112614d3257600080fd5b81356020614d42614cca83614c86565b8083825260208201915060208460051b870101935086841115614d6457600080fd5b602086015b84811015614d165780358352918301918301614d69565b600060e08284031215614d9257600080fd5b614d9a614bef565b9050614da58261484c565b8152614db36020830161484c565b6020820152614dc46040830161484c565b604082015260608201356060820152614ddf60808301614c7b565b608082015260a08201356001600160401b0380821115614dfe57600080fd5b614e0a85838601614ca9565b60a084015260c0840135915080821115614e2357600080fd5b50614e3084828501614d21565b60c08301525092915050565b600060208284031215614e4e57600080fd5b81356001600160401b03811115614e6457600080fd5b614e7084828501614d80565b949350505050565b600060208284031215614e8a57600080fd5b813560ff811681146149c457600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ec157600080fd5b85356001600160401b0380821115614ed857600080fd5b9087019060e0828a031215614eec57600080fd5b90955060208701359080821115614f0257600080fd5b50614f0f888289016147b2565b909550935050604086013591506060860135614f2a81614e9b565b809150509295509295909350565b60008060408385031215614f4b57600080fd5b8235614f5681614837565b91506020830135614f6681614837565b809150509250929050565b600060408284031215614f8357600080fd5b614f8b614c17565b905081356001600160401b0380821115614fa457600080fd5b818401915084601f830112614fb857600080fd5b8135602082821115614fcc57614fcc614bd9565b614fde601f8301601f19168201614c39565b92508183528681838601011115614ff457600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a0868803121561503157600080fd5b853561503c81614837565b9450602086013561504c81614837565b935060408601356001600160401b038082111561506857600080fd5b61507489838a01614f71565b9450606088013591508082111561508a57600080fd5b5061509788828901614f71565b95989497509295608001359392505050565b600080604083850312156150bc57600080fd5b82356150c781614837565b915060208301356001600160401b038111156150e257600080fd5b6150ee85828601614ca9565b9150509250929050565b60008151808452602080850194506020840160005b838110156151295781518752958201959082019060010161510d565b509495945050505050565b6020815260006149c460208301846150f8565b6000806020838503121561515a57600080fd5b82356001600160401b0381111561517057600080fd5b61482b85828601614913565b6000806040838503121561518f57600080fd5b823561519a81614837565b946020939093013593505050565b600080600080608085870312156151be57600080fd5b84356151c981614837565b93506020850135925060408501356151e081614837565b9396929550929360600135925050565b60008151808452602080850194506020840160005b838110156151295781516001600160a01b031687529582019590820190600101615205565b60408152600061523d60408301856151f0565b828103602084015261120f81856150f8565b60008060006060848603121561526457600080fd5b833561526f81614837565b925060208401356001600160401b0381111561528a57600080fd5b61529686828701614f71565b925050604084013590509250925092565b6000606082840312156152b957600080fd5b6149c483836148fb565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261532657600080fd5b9190910192915050565b6000808335601e1984360301811261534757600080fd5b8301803591506001600160401b0382111561536157600080fd5b6020019150600581901b36038213156144cf57600080fd5b60608101823561538881614837565b6001600160a01b0390811683526020840135906153a482614837565b16602083015260408301356153b881614c69565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561540c57600080fd5b81516149c481614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154d057600080fd5b81516149c481614e9b565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261532657600080fd5b60006020828403121561554b57600080fd5b81356149c481614e9b565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a08501526155b160e08501826151f0565b905060c083015184820360c086015261120f82826150f8565b6020815260006149c46020830184615556565b6000602082840312156155ef57600080fd5b5051919050565b600082601f83011261560757600080fd5b81516020615617614cca83614c86565b8083825260208201915060208460051b87010193508684111561563957600080fd5b602086015b84811015614d16578051835291830191830161563e565b6000806040838503121561566857600080fd5b82516001600160401b038082111561567f57600080fd5b818501915085601f83011261569357600080fd5b815160206156a3614cca83614c86565b82815260059290921b840181019181810190898411156156c257600080fd5b948201945b838610156156e95785516156da81614837565b825294820194908201906156c7565b9188015191965090935050508082111561570257600080fd5b506150ee858286016155f6565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261570f565b818103818111156109c2576109c261570f565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157815761578161570f565b5060010190565b828152604060208201526000614e706040830184615556565b6000602082840312156157b357600080fd5b81356149c481614c69565b80546001600160a01b0319166001600160a01b0392909216919091179055565b81356157e981614837565b6157f381836157be565b5060018101602083013561580681614837565b61581081836157be565b50604083013561581f81614c69565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d80565b6020808252606e9082015260008051602061596d83398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b8281526000602060406020840152835180604085015260005b8181101561590a578581018301518582016060015282016158ee565b506000606082860101526060601f19601f830116850101925050509392505050565b60006020828403121561593e57600080fd5b81516001600160e01b0319811681146149c457600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a264697066735822122077e25f9c65861d9bf718b537427551bab355394bebd5f95b15c4df6972929f1b64736f6c63430008180033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c8530000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6","output":"0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614954565b610de8565b005b6103da6103ea3660046149a7565b610f2d565b6103da6103fd3660046149cb565b610fe0565b6103da610410366004614a0c565b611097565b6103da610423366004614a25565b6111d6565b61035a6104363660046149a7565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149cb565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a90565b611218565b6103da6104bc3660046149cb565b61135c565b61035a6104cf3660046149a7565b609b6020526000908152604090205481565b6103da6104ef366004614b37565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b6105413660046149a7565b6001600160a01b039081166000908152609960205260409020600101541690565b6105756105703660046149a7565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e3c565b611626565b610575610606366004614e78565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614ea9565b611656565b6103da610644366004614a0c565b6116ef565b61051b6106573660046149a7565b609a602052600090815260409020546001600160a01b031681565b6105756106803660046149a7565b611700565b6103da611721565b61035a61069b366004614f38565b609860209081526000928352604080842090915290825290205481565b6103da6106c6366004615019565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150a9565b611961565b6040516103649190615134565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da610738366004615147565b611a33565b61035a61074b3660046149a7565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a0c565b609e6020526000908152604090205460ff1681565b6105756107b536600461517c565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec3660046149a7565b60a16020526000908152604090205481565b61086e61080c3660046149a7565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151a8565b611b05565b61035a62034bc081565b6108d46108cf3660046149a7565b611bbe565b60405161036492919061522a565b6103ba6108f03660046149a7565b611f75565b6103da61090336600461524f565b61242e565b6103da6109163660046152a7565b61254b565b6103da6109293660046149a7565b6125dc565b61035a612652565b6103da610944366004614a0c565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152c3565b905060200201602081019061098691906149a7565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152d9565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614bd9565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152c3565b9050602002810190610b4e9190615310565b610b5c906020810190615330565b9050878783818110610b7057610b706152c3565b9050602002810190610b829190615310565b610b8c9080615330565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152c3565b9050602002810190610c269190615310565b610c379060608101906040016149a7565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152c3565b9050602002810190610cdc9190615310565b610ced9060608101906040016149a7565b8a8a86818110610cff57610cff6152c3565b9050602002810190610d119190615310565b610d1b9080615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152c3565b9050602002810190610d739190615310565b610d81906020810190615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152c3565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615379565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153cb565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa491906153fa565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615417565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab590615461565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154be565b61111f5760405162461bcd60e51b8152600401610ab5906154db565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab590615461565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152c3565b90506020028101906114bd9190615523565b8989848181106114cf576114cf6152c3565b90506020028101906114e19190615330565b8989868181106114f3576114f36152c3565b9050602002013588888781811061150c5761150c6152c3565b90506020020160208101906115219190615539565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154be565b6115e75760405162461bcd60e51b8152600401610ab5906154db565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155ca565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614bd9565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152c3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152c3565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153cb565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5291906155dd565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea9190810190615655565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152c3565b602002602001018181525050611f68565b8351611dc7906001615725565b6001600160401b03811115611dde57611dde614bd9565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614bd9565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152c3565b6020026020010151838281518110611e8757611e876152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152c3565b6020026020010151828281518110611ed357611ed36152c3565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615738565b81518110611f1b57611f1b6152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615738565b81518110611f5b57611f5b6152c3565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152d9565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614bd9565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152c3565b602002602001015182600081518110612396576123966152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152c3565b6020026020010151816000815181106123e3576123e36152c3565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152c3565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270691906153fa565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615417565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152c3565b602002602001015186858151811061295b5761295b6152c3565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152c3565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152c3565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152c3565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154be565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152c3565b6020026020010151868581518110612c5a57612c5a6152c3565b60200260200101516040518463ffffffff1660e01b8152600401612c809392919061574b565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361576f565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d999083908590615788565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157a1565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157a1565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c82826157de565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615379565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152d9565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152c3565b6020026020010151858581518110613220576132206152c3565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615738565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f9392919061574b565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152c3565b90506020020160208101906134be91906149a7565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152c3565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615725565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f9392919061574b565b60006139776105f387615841565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157a1565b63ffffffff16613a1d9190615725565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab560608701604088016149a7565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615330565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615330565b9050811015613d23574360a16000613c0b60a08b018b615330565b85818110613c1b57613c1b6152c3565b9050602002016020810190613c3091906149a7565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157a1565b63ffffffff16613c6a9190615725565b1115613c885760405162461bcd60e51b8152600401610ab59061584d565b613d1b613c9860208901896149a7565b33613ca660a08b018b615330565b85818110613cb657613cb66152c3565b9050602002016020810190613ccb91906149a7565b613cd860c08c018c615330565b86818110613ce857613ce86152c3565b905060200201358a8a87818110613d0157613d016152c3565b9050602002016020810190613d1691906149a7565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615330565b9050811015614114574360a16000613d6c60a08c018c615330565b85818110613d7c57613d7c6152c3565b9050602002016020810190613d9191906149a7565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157a1565b63ffffffff16613dcb9190615725565b1115613de95760405162461bcd60e51b8152600401610ab59061584d565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615330565b83818110613e1b57613e1b6152c3565b9050602002016020810190613e3091906149a7565b6001600160a01b031603613f7f576000613e4d60208a018a6149a7565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615330565b87818110613e9e57613e9e6152c3565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1691906155dd565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615330565b88818110613f5c57613f5c6152c3565b9050602002016020810190613f7191906149a7565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152c3565b9050602002016020810190613fd691906149a7565b613fe360a08d018d615330565b86818110613ff357613ff36152c3565b905060200201602081019061400891906149a7565b61401560c08e018e615330565b87818110614025576140256152c3565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615330565b858181106140ce576140ce6152c3565b90506020020160208101906140e391906149a7565b6140f060c08d018d615330565b86818110614100576141006152c3565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061419290869086906004016158d5565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d3919061592c565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b1300906143809088908890879060040161574b565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615956565b036144f25750565b600181600481111561450657614506615956565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615956565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615956565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615956565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615725565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b6020808252825182820181905260009190848201906040850190845b818110156148ef578351835292840192918401916001016148d3565b50909695505050505050565b60006060828403121561490d57600080fd5b50919050565b60008083601f84011261492557600080fd5b5081356001600160401b0381111561493c57600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561496957600080fd5b61497385856148fb565b925060608401356001600160401b0381111561498e57600080fd5b61499a86828701614913565b9497909650939450505050565b6000602082840312156149b957600080fd5b81356149c481614837565b9392505050565b6000806000606084860312156149e057600080fd5b83356149eb81614837565b925060208401356149fb81614837565b929592945050506040919091013590565b600060208284031215614a1e57600080fd5b5035919050565b60008060008060408587031215614a3b57600080fd5b84356001600160401b0380821115614a5257600080fd5b614a5e888389016147b2565b90965094506020870135915080821115614a7757600080fd5b50614a84878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aac57600080fd5b8835614ab781614837565b97506020890135614ac781614837565b9650604089013595506060890135945060808901356001600160401b0380821115614af157600080fd5b614afd8c838d016147b2565b909650945060a08b0135915080821115614b1657600080fd5b50614b238b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b5357600080fd5b88356001600160401b0380821115614b6a57600080fd5b614b768c838d016147b2565b909a50985060208b0135915080821115614b8f57600080fd5b614b9b8c838d016147b2565b909850965060408b0135915080821115614bb457600080fd5b614bc08c838d016147b2565b909650945060608b0135915080821115614b1657600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1157614c11614bd9565b60405290565b604080519081016001600160401b0381118282101715614c1157614c11614bd9565b604051601f8201601f191681016001600160401b0381118282101715614c6157614c61614bd9565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c69565b60006001600160401b03821115614c9f57614c9f614bd9565b5060051b60200190565b600082601f830112614cba57600080fd5b81356020614ccf614cca83614c86565b614c39565b8083825260208201915060208460051b870101935086841115614cf157600080fd5b602086015b84811015614d16578035614d0981614837565b8352918301918301614cf6565b509695505050505050565b600082601f830112614d3257600080fd5b81356020614d42614cca83614c86565b8083825260208201915060208460051b870101935086841115614d6457600080fd5b602086015b84811015614d165780358352918301918301614d69565b600060e08284031215614d9257600080fd5b614d9a614bef565b9050614da58261484c565b8152614db36020830161484c565b6020820152614dc46040830161484c565b604082015260608201356060820152614ddf60808301614c7b565b608082015260a08201356001600160401b0380821115614dfe57600080fd5b614e0a85838601614ca9565b60a084015260c0840135915080821115614e2357600080fd5b50614e3084828501614d21565b60c08301525092915050565b600060208284031215614e4e57600080fd5b81356001600160401b03811115614e6457600080fd5b614e7084828501614d80565b949350505050565b600060208284031215614e8a57600080fd5b813560ff811681146149c457600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ec157600080fd5b85356001600160401b0380821115614ed857600080fd5b9087019060e0828a031215614eec57600080fd5b90955060208701359080821115614f0257600080fd5b50614f0f888289016147b2565b909550935050604086013591506060860135614f2a81614e9b565b809150509295509295909350565b60008060408385031215614f4b57600080fd5b8235614f5681614837565b91506020830135614f6681614837565b809150509250929050565b600060408284031215614f8357600080fd5b614f8b614c17565b905081356001600160401b0380821115614fa457600080fd5b818401915084601f830112614fb857600080fd5b8135602082821115614fcc57614fcc614bd9565b614fde601f8301601f19168201614c39565b92508183528681838601011115614ff457600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a0868803121561503157600080fd5b853561503c81614837565b9450602086013561504c81614837565b935060408601356001600160401b038082111561506857600080fd5b61507489838a01614f71565b9450606088013591508082111561508a57600080fd5b5061509788828901614f71565b95989497509295608001359392505050565b600080604083850312156150bc57600080fd5b82356150c781614837565b915060208301356001600160401b038111156150e257600080fd5b6150ee85828601614ca9565b9150509250929050565b60008151808452602080850194506020840160005b838110156151295781518752958201959082019060010161510d565b509495945050505050565b6020815260006149c460208301846150f8565b6000806020838503121561515a57600080fd5b82356001600160401b0381111561517057600080fd5b61482b85828601614913565b6000806040838503121561518f57600080fd5b823561519a81614837565b946020939093013593505050565b600080600080608085870312156151be57600080fd5b84356151c981614837565b93506020850135925060408501356151e081614837565b9396929550929360600135925050565b60008151808452602080850194506020840160005b838110156151295781516001600160a01b031687529582019590820190600101615205565b60408152600061523d60408301856151f0565b828103602084015261120f81856150f8565b60008060006060848603121561526457600080fd5b833561526f81614837565b925060208401356001600160401b0381111561528a57600080fd5b61529686828701614f71565b925050604084013590509250925092565b6000606082840312156152b957600080fd5b6149c483836148fb565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261532657600080fd5b9190910192915050565b6000808335601e1984360301811261534757600080fd5b8301803591506001600160401b0382111561536157600080fd5b6020019150600581901b36038213156144cf57600080fd5b60608101823561538881614837565b6001600160a01b0390811683526020840135906153a482614837565b16602083015260408301356153b881614c69565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561540c57600080fd5b81516149c481614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154d057600080fd5b81516149c481614e9b565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261532657600080fd5b60006020828403121561554b57600080fd5b81356149c481614e9b565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a08501526155b160e08501826151f0565b905060c083015184820360c086015261120f82826150f8565b6020815260006149c46020830184615556565b6000602082840312156155ef57600080fd5b5051919050565b600082601f83011261560757600080fd5b81516020615617614cca83614c86565b8083825260208201915060208460051b87010193508684111561563957600080fd5b602086015b84811015614d16578051835291830191830161563e565b6000806040838503121561566857600080fd5b82516001600160401b038082111561567f57600080fd5b818501915085601f83011261569357600080fd5b815160206156a3614cca83614c86565b82815260059290921b840181019181810190898411156156c257600080fd5b948201945b838610156156e95785516156da81614837565b825294820194908201906156c7565b9188015191965090935050508082111561570257600080fd5b506150ee858286016155f6565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261570f565b818103818111156109c2576109c261570f565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157815761578161570f565b5060010190565b828152604060208201526000614e706040830184615556565b6000602082840312156157b357600080fd5b81356149c481614c69565b80546001600160a01b0319166001600160a01b0392909216919091179055565b81356157e981614837565b6157f381836157be565b5060018101602083013561580681614837565b61581081836157be565b50604083013561581f81614c69565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d80565b6020808252606e9082015260008051602061596d83398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b8281526000602060406020840152835180604085015260005b8181101561590a578581018301518582016060015282016158ee565b506000606082860101526060601f19601f830116850101925050509392505050565b60006020828403121561593e57600080fd5b81516001600160e01b0319811681146149c457600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a264697066735822122077e25f9c65861d9bf718b537427551bab355394bebd5f95b15c4df6972929f1b64736f6c63430008180033","gas_used":4625204,"gas_limit":6136719,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614954565b610de8565b005b6103da6103ea3660046149a7565b610f2d565b6103da6103fd3660046149cb565b610fe0565b6103da610410366004614a0c565b611097565b6103da610423366004614a25565b6111d6565b61035a6104363660046149a7565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149cb565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a90565b611218565b6103da6104bc3660046149cb565b61135c565b61035a6104cf3660046149a7565b609b6020526000908152604090205481565b6103da6104ef366004614b37565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b6105413660046149a7565b6001600160a01b039081166000908152609960205260409020600101541690565b6105756105703660046149a7565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e3c565b611626565b610575610606366004614e78565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614ea9565b611656565b6103da610644366004614a0c565b6116ef565b61051b6106573660046149a7565b609a602052600090815260409020546001600160a01b031681565b6105756106803660046149a7565b611700565b6103da611721565b61035a61069b366004614f38565b609860209081526000928352604080842090915290825290205481565b6103da6106c6366004615019565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150a9565b611961565b6040516103649190615134565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da610738366004615147565b611a33565b61035a61074b3660046149a7565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a0c565b609e6020526000908152604090205460ff1681565b6105756107b536600461517c565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec3660046149a7565b60a16020526000908152604090205481565b61086e61080c3660046149a7565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151a8565b611b05565b61035a62034bc081565b6108d46108cf3660046149a7565b611bbe565b60405161036492919061522a565b6103ba6108f03660046149a7565b611f75565b6103da61090336600461524f565b61242e565b6103da6109163660046152a7565b61254b565b6103da6109293660046149a7565b6125dc565b61035a612652565b6103da610944366004614a0c565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152c3565b905060200201602081019061098691906149a7565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152d9565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614bd9565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152c3565b9050602002810190610b4e9190615310565b610b5c906020810190615330565b9050878783818110610b7057610b706152c3565b9050602002810190610b829190615310565b610b8c9080615330565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152c3565b9050602002810190610c269190615310565b610c379060608101906040016149a7565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152c3565b9050602002810190610cdc9190615310565b610ced9060608101906040016149a7565b8a8a86818110610cff57610cff6152c3565b9050602002810190610d119190615310565b610d1b9080615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152c3565b9050602002810190610d739190615310565b610d81906020810190615330565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152c3565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615379565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153cb565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa491906153fa565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615417565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab590615461565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154be565b61111f5760405162461bcd60e51b8152600401610ab5906154db565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab590615461565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152c3565b90506020028101906114bd9190615523565b8989848181106114cf576114cf6152c3565b90506020028101906114e19190615330565b8989868181106114f3576114f36152c3565b9050602002013588888781811061150c5761150c6152c3565b90506020020160208101906115219190615539565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154be565b6115e75760405162461bcd60e51b8152600401610ab5906154db565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155ca565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152d9565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614bd9565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152c3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152c3565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153cb565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5291906155dd565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea9190810190615655565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152c3565b602002602001018181525050611f68565b8351611dc7906001615725565b6001600160401b03811115611dde57611dde614bd9565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614bd9565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152c3565b6020026020010151838281518110611e8757611e876152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152c3565b6020026020010151828281518110611ed357611ed36152c3565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615738565b81518110611f1b57611f1b6152c3565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615738565b81518110611f5b57611f5b6152c3565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152d9565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614bd9565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152c3565b602002602001015182600081518110612396576123966152c3565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152c3565b6020026020010151816000815181106123e3576123e36152c3565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152c3565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270691906153fa565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615417565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152c3565b602002602001015186858151811061295b5761295b6152c3565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152c3565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152c3565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152c3565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154be565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152c3565b6020026020010151868581518110612c5a57612c5a6152c3565b60200260200101516040518463ffffffff1660e01b8152600401612c809392919061574b565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361576f565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d999083908590615788565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157a1565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157a1565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c82826157de565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615379565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152d9565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152c3565b6020026020010151858581518110613220576132206152c3565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615738565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f9392919061574b565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152c3565b90506020020160208101906134be91906149a7565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152c3565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615725565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f9392919061574b565b60006139776105f387615841565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157a1565b63ffffffff16613a1d9190615725565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab560608701604088016149a7565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061596d83398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615330565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061596d83398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615330565b9050811015613d23574360a16000613c0b60a08b018b615330565b85818110613c1b57613c1b6152c3565b9050602002016020810190613c3091906149a7565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157a1565b63ffffffff16613c6a9190615725565b1115613c885760405162461bcd60e51b8152600401610ab59061584d565b613d1b613c9860208901896149a7565b33613ca660a08b018b615330565b85818110613cb657613cb66152c3565b9050602002016020810190613ccb91906149a7565b613cd860c08c018c615330565b86818110613ce857613ce86152c3565b905060200201358a8a87818110613d0157613d016152c3565b9050602002016020810190613d1691906149a7565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615330565b9050811015614114574360a16000613d6c60a08c018c615330565b85818110613d7c57613d7c6152c3565b9050602002016020810190613d9191906149a7565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157a1565b63ffffffff16613dcb9190615725565b1115613de95760405162461bcd60e51b8152600401610ab59061584d565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615330565b83818110613e1b57613e1b6152c3565b9050602002016020810190613e3091906149a7565b6001600160a01b031603613f7f576000613e4d60208a018a6149a7565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615330565b87818110613e9e57613e9e6152c3565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1691906155dd565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615330565b88818110613f5c57613f5c6152c3565b9050602002016020810190613f7191906149a7565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152c3565b9050602002016020810190613fd691906149a7565b613fe360a08d018d615330565b86818110613ff357613ff36152c3565b905060200201602081019061400891906149a7565b61401560c08e018e615330565b87818110614025576140256152c3565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615330565b858181106140ce576140ce6152c3565b90506020020160208101906140e391906149a7565b6140f060c08d018d615330565b86818110614100576141006152c3565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061419290869086906004016158d5565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d3919061592c565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b1300906143809088908890879060040161574b565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615956565b036144f25750565b600181600481111561450657614506615956565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615956565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615956565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615956565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615725565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b6020808252825182820181905260009190848201906040850190845b818110156148ef578351835292840192918401916001016148d3565b50909695505050505050565b60006060828403121561490d57600080fd5b50919050565b60008083601f84011261492557600080fd5b5081356001600160401b0381111561493c57600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561496957600080fd5b61497385856148fb565b925060608401356001600160401b0381111561498e57600080fd5b61499a86828701614913565b9497909650939450505050565b6000602082840312156149b957600080fd5b81356149c481614837565b9392505050565b6000806000606084860312156149e057600080fd5b83356149eb81614837565b925060208401356149fb81614837565b929592945050506040919091013590565b600060208284031215614a1e57600080fd5b5035919050565b60008060008060408587031215614a3b57600080fd5b84356001600160401b0380821115614a5257600080fd5b614a5e888389016147b2565b90965094506020870135915080821115614a7757600080fd5b50614a84878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aac57600080fd5b8835614ab781614837565b97506020890135614ac781614837565b9650604089013595506060890135945060808901356001600160401b0380821115614af157600080fd5b614afd8c838d016147b2565b909650945060a08b0135915080821115614b1657600080fd5b50614b238b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b5357600080fd5b88356001600160401b0380821115614b6a57600080fd5b614b768c838d016147b2565b909a50985060208b0135915080821115614b8f57600080fd5b614b9b8c838d016147b2565b909850965060408b0135915080821115614bb457600080fd5b614bc08c838d016147b2565b909650945060608b0135915080821115614b1657600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1157614c11614bd9565b60405290565b604080519081016001600160401b0381118282101715614c1157614c11614bd9565b604051601f8201601f191681016001600160401b0381118282101715614c6157614c61614bd9565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c69565b60006001600160401b03821115614c9f57614c9f614bd9565b5060051b60200190565b600082601f830112614cba57600080fd5b81356020614ccf614cca83614c86565b614c39565b8083825260208201915060208460051b870101935086841115614cf157600080fd5b602086015b84811015614d16578035614d0981614837565b8352918301918301614cf6565b509695505050505050565b600082601f830112614d3257600080fd5b81356020614d42614cca83614c86565b8083825260208201915060208460051b870101935086841115614d6457600080fd5b602086015b84811015614d165780358352918301918301614d69565b600060e08284031215614d9257600080fd5b614d9a614bef565b9050614da58261484c565b8152614db36020830161484c565b6020820152614dc46040830161484c565b604082015260608201356060820152614ddf60808301614c7b565b608082015260a08201356001600160401b0380821115614dfe57600080fd5b614e0a85838601614ca9565b60a084015260c0840135915080821115614e2357600080fd5b50614e3084828501614d21565b60c08301525092915050565b600060208284031215614e4e57600080fd5b81356001600160401b03811115614e6457600080fd5b614e7084828501614d80565b949350505050565b600060208284031215614e8a57600080fd5b813560ff811681146149c457600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ec157600080fd5b85356001600160401b0380821115614ed857600080fd5b9087019060e0828a031215614eec57600080fd5b90955060208701359080821115614f0257600080fd5b50614f0f888289016147b2565b909550935050604086013591506060860135614f2a81614e9b565b809150509295509295909350565b60008060408385031215614f4b57600080fd5b8235614f5681614837565b91506020830135614f6681614837565b809150509250929050565b600060408284031215614f8357600080fd5b614f8b614c17565b905081356001600160401b0380821115614fa457600080fd5b818401915084601f830112614fb857600080fd5b8135602082821115614fcc57614fcc614bd9565b614fde601f8301601f19168201614c39565b92508183528681838601011115614ff457600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a0868803121561503157600080fd5b853561503c81614837565b9450602086013561504c81614837565b935060408601356001600160401b038082111561506857600080fd5b61507489838a01614f71565b9450606088013591508082111561508a57600080fd5b5061509788828901614f71565b95989497509295608001359392505050565b600080604083850312156150bc57600080fd5b82356150c781614837565b915060208301356001600160401b038111156150e257600080fd5b6150ee85828601614ca9565b9150509250929050565b60008151808452602080850194506020840160005b838110156151295781518752958201959082019060010161510d565b509495945050505050565b6020815260006149c460208301846150f8565b6000806020838503121561515a57600080fd5b82356001600160401b0381111561517057600080fd5b61482b85828601614913565b6000806040838503121561518f57600080fd5b823561519a81614837565b946020939093013593505050565b600080600080608085870312156151be57600080fd5b84356151c981614837565b93506020850135925060408501356151e081614837565b9396929550929360600135925050565b60008151808452602080850194506020840160005b838110156151295781516001600160a01b031687529582019590820190600101615205565b60408152600061523d60408301856151f0565b828103602084015261120f81856150f8565b60008060006060848603121561526457600080fd5b833561526f81614837565b925060208401356001600160401b0381111561528a57600080fd5b61529686828701614f71565b925050604084013590509250925092565b6000606082840312156152b957600080fd5b6149c483836148fb565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261532657600080fd5b9190910192915050565b6000808335601e1984360301811261534757600080fd5b8301803591506001600160401b0382111561536157600080fd5b6020019150600581901b36038213156144cf57600080fd5b60608101823561538881614837565b6001600160a01b0390811683526020840135906153a482614837565b16602083015260408301356153b881614c69565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561540c57600080fd5b81516149c481614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154d057600080fd5b81516149c481614e9b565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261532657600080fd5b60006020828403121561554b57600080fd5b81356149c481614e9b565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a08501526155b160e08501826151f0565b905060c083015184820360c086015261120f82826150f8565b6020815260006149c46020830184615556565b6000602082840312156155ef57600080fd5b5051919050565b600082601f83011261560757600080fd5b81516020615617614cca83614c86565b8083825260208201915060208460051b87010193508684111561563957600080fd5b602086015b84811015614d16578051835291830191830161563e565b6000806040838503121561566857600080fd5b82516001600160401b038082111561567f57600080fd5b818501915085601f83011261569357600080fd5b815160206156a3614cca83614c86565b82815260059290921b840181019181810190898411156156c257600080fd5b948201945b838610156156e95785516156da81614837565b825294820194908201906156c7565b9188015191965090935050508082111561570257600080fd5b506150ee858286016155f6565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261570f565b818103818111156109c2576109c261570f565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157815761578161570f565b5060010190565b828152604060208201526000614e706040830184615556565b6000602082840312156157b357600080fd5b81356149c481614c69565b80546001600160a01b0319166001600160a01b0392909216919091179055565b81356157e981614837565b6157f381836157be565b5060018101602083013561580681614837565b61581081836157be565b50604083013561581f81614c69565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d80565b6020808252606e9082015260008051602061596d83398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b8281526000602060406020840152835180604085015260005b8181101561590a578581018301518582016060015282016158ee565b506000606082860101526060601f19601f830116850101925050509392505050565b60006020828403121561593e57600080fd5b81516001600160e01b0319811681146149c457600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a264697066735822122077e25f9c65861d9bf718b537427551bab355394bebd5f95b15c4df6972929f1b64736f6c63430008180033","nonce":12,"gas_used":5044790},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4cfa36","logs":[{"address":"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000000000000000400000000000"},"block_hash":"0xe1f6cd22f9375fef53501446ba8ccbad8aa1109ada934708254fd611c48e641c","block_number":7},{"info":{"transaction_hash":"0x245ce1c4eeb5ceb2ec58663b3425259120d529d7ec97ac88dda2e4d833f539df","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":19655,"gas_limit":35962,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef286000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":13359,"gas_limit":29250,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","address":"0x959922be3caee4b8cd9a407cc3ac1c251c2007b1","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x1794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":456,"gas_limit":16309,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Stop","out":"0x","nonce":21,"gas_used":42775},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x5b3b8","logs":[{"address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000002000000000010000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xdc661eb62f3503115532a4a4ebf9dbb29830a7f54b0435e7188a418d1ac7faf1","block_number":12},{"info":{"transaction_hash":"0xeec7885bd4acd3c5899e60e2f446f2c7677866554225055981920e21ab03ad31","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x610178da211fef7d417bc0e6fed39f05609ad788","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x610178da211fef7d417bc0e6fed39f05609ad788","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6101206040523480156200001257600080fd5b5060405162005ec238038062005ec283398101604081905262000035916200016f565b6001600160a01b0380861660805284811660a052831660c0526001600160401b0380831660e0528116610100526200006c62000077565b5050505050620001e7565b600054610100900460ff1615620000e45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000137576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200014f57600080fd5b50565b80516001600160401b03811681146200016a57600080fd5b919050565b600080600080600060a086880312156200018857600080fd5b8551620001958162000139565b6020870151909550620001a88162000139565b6040870151909450620001bb8162000139565b9250620001cb6060870162000152565b9150620001db6080870162000152565b90509295509295909350565b60805160a05160c05160e05161010051615be0620002e2600039600081816105b501528181612007015281816120be0152612116015260008181610275015281816125a7015281816125db01528181612c0701528181612c340152818161437a01526143b501526000818161036d01528181610614015281816107a701528181610aef01528181610c3a01528181610dc201528181610f7d0152818161115e0152818161128801528181611459015281816118a601528181611a4401528181611b8301528181611d4501528181611e2f015261312a015260008181610241015261339c0152600081816104520152610e8d0152615be06000f3fe6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039b57600080fd5b506103af6103aa366004614e40565b610ca5565b60405161020f9190614eb9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ec7565b610d0a565b60405161020f9190614ee0565b34801561041557600080fd5b506103af610424366004614ec7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f28565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614f9b565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e40565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615045565b61144e565b34801561052f57600080fd5b5061022d61053e366004615071565b61168b565b34801561054f57600080fd5b5061022d61055e36600461518f565b611863565b34801561056f57600080fd5b5061022d61057e366004615260565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615045565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610687919061535b565b156106ad5760405162461bcd60e51b81526004016106a49061537d565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615422565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a919061535b565b156108375760405162461bcd60e51b81526004016106a49061537d565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b629190615471565b8935610b7160208c018c61548a565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a6154d0565b9050602002016020810190610baf91906154e6565b8a8a86818110610bc157610bc16154d0565b9050602002810190610bd3919061548a565b8a8a88818110610be557610be56154d0565b9050602002810190610bf7919061550d565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e81565b6002811115610dae57610dae614e81565b90525092915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610dff5760405162461bcd60e51b81526004016106a490615556565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615620565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f5592919061566f565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff0919061535b565b1561100d5760405162461bcd60e51b81526004016106a49061537d565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d19190615471565b8735610b7160208a018a61548a565b6000805b8881101561127a576112668b8b8b84818110611202576112026154d0565b905060200201602081019061121791906154e6565b8a358a8a8681811061122b5761122b6154d0565b905060200281019061123d919061548a565b8a8a8881811061124f5761124f6154d0565b9050602002810190611261919061550d565b6128c1565b6112709083615683565b91506001016111e4565b506033546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163c2c51c4091166112bf633b9aca00856156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e81565b60028111156113d9576113d9614e81565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615422565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114965760405162461bcd60e51b81526004016106a490615556565b6114a4633b9aca00826156f1565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca0083615705565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615719565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611919919061535b565b156119365760405162461bcd60e51b81526004016106a49061537d565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e36154d0565b60200260200101518784815181106119fd576119fd6154d0565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab7919061535b565b15611ad45760405162461bcd60e51b81526004016106a49061537d565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf69190615471565b8b35610b7160208e018e61548a565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d6154d0565b9050602002810190611c4f9190615739565b8c8c86818110611c6157611c616154d0565b9050602002810190611c73919061548a565b8c8c88818110611c8557611c856154d0565b9050602002810190611c97919061550d565b8c8c8a818110611ca957611ca96154d0565b9050602002810190611cbb919061550d565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee908390615683565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca009061575a565b613372565b602081015115611dde5760335460208201516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263c2c51c4092911690611d7f90633b9aca00906156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea2919061535b565b15611ebf5760405162461bcd60e51b81526004016106a49061537d565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f829190615771565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c6020615784565b6120e37f000000000000000000000000000000000000000000000000000000000000000084615719565b610d0491906157a7565b60006120fb600c6020615784565b6121068360016157cd565b6121109190615784565b610d04907f00000000000000000000000000000000000000000000000000000000000000006157cd565b6121466003602061575a565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e81565b600281111561238757612387614e81565b90525090506000816060015160028111156123a4576123a4614e81565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e906157ed565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f83615811565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000000000000081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000000000000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e81565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b0316612773919061575a565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b60405160029061282290849060009060200161582a565b60408051601f198184030181529082905261283c91615859565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d049190615471565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e81565b60028111156129c0576129c0614e81565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e81565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000000000000081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000000000000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e81565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b896158da565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b6158da565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e81565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a16565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f6158da565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e81565b600281111561333857613338614e81565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d6154d0565b60200260200101519050919050565b60008160018151811061342d5761342d6154d0565b6000610d0482600281518110613469576134696154d0565b60200260200101516147cd565b61348260036002615b17565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b61353090602061575a565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d0482600781518110613469576134696154d0565b60006136fd6001600160401b03808416908516615b23565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b8051909150156116865780806020019051810190613890919061535b565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b17565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b17565b61399a60c0840160a08501615b43565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615b8b83398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b17565b613a21610100840160e08501615b43565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b17565b613aa960e0840160c08501615b43565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b856158da565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b7690602061575a565b613b80848061548a565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b90602061575a565b613c18604085018561548a565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615b8b83398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e6003602061575a565b613cab602085018561548a565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d2481602061575a565b613d31606085018561548a565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd90602061575a565b613dea608085018561548a565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615b43565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615b43565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef3608086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb8602086018661548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b7614071604087018761548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a606086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615b43565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a9614268878061548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d0482600181518110613469576134696154d0565b6000610d0482600381518110613469576134696154d0565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000000000000006143dc565b50825b60408051808201909152600080825260208201526143fa8286615719565b6001600160401b03908116825260348054849260009161441c918591166157cd565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e81565b1461448d576039805490600061448083615b60565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e81565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b03166157cd565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b91906156f1565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c3576147506002856156f1565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b600080600283516148459190615705565b90506000816001600160401b038111156148615761486161508e565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a5838361575a565b815181106148b5576148b56154d0565b6020026020010151868360026148cb919061575a565b6148d6906001614c64565b815181106148e6576148e66154d0565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f198184030181529082905261492291615859565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906149629190615471565b828281518110614974576149746154d0565b6020908102919091010152600101614890565b50614993600283615705565b91505b8115614aa95760005b82811015614a96576002826149b4838361575a565b815181106149c4576149c46154d0565b6020026020010151838360026149da919061575a565b6149e5906001614c64565b815181106149f5576149f56154d0565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a3191615859565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a719190615471565b828281518110614a8357614a836154d0565b602090810291909101015260010161499f565b50614aa2600283615705565b9150614996565b80600081518110614abc57614abc6154d0565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb89190615859565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615b77565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b0380821115614d7257600080fd5b614d7e8c838d01614ccc565b985060408b0135915080821115614d9457600080fd5b614da08c838d01614ce4565b909850965060608b0135915080821115614db957600080fd5b614dc58c838d01614ce4565b909650945060808b0135915080821115614dde57600080fd5b50614deb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e1157600080fd5b5081356001600160401b03811115614e2857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e5357600080fd5b82356001600160401b03811115614e6957600080fd5b614e7585828601614dff565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614eb557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614e97565b600060208284031215614ed957600080fd5b5035919050565b60006080820190506001600160401b03808451168352806020850151166020840152806040850151166040840152506060830151614f216060840182614e97565b5092915050565b600080600080600060608688031215614f4057600080fd5b85356001600160401b0380821115614f5757600080fd5b614f6389838a01614dff565b90975095506020880135915080821115614f7c57600080fd5b50614f8988828901614dff565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fb757600080fd5b8835614fc281614c77565b975060208901356001600160401b0380821115614fde57600080fd5b614fea8c838d01614ce4565b909950975060408b013591508082111561500357600080fd5b61500f8c838d01614ccc565b965060608b0135915080821115614db957600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615025565b6000806040838503121561505857600080fd5b823561506381615025565b946020939093013593505050565b60006020828403121561508357600080fd5b81356136fd81615025565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150c7576150c761508e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156150f5576150f561508e565b604052919050565b60006001600160401b038211156151165761511661508e565b5060051b60200190565b600082601f83011261513157600080fd5b81356020615146615141836150fd565b6150cd565b8083825260208201915060208460051b87010193508684111561516857600080fd5b602086015b84811015615184578035835291830191830161516d565b509695505050505050565b6000806000606084860312156151a457600080fd5b83356001600160401b03808211156151bb57600080fd5b818601915086601f8301126151cf57600080fd5b813560206151df615141836150fd565b82815260059290921b8401810191818101908a8411156151fe57600080fd5b948201945b8386101561522557853561521681615025565b82529482019490820190615203565b9750508701359250508082111561523b57600080fd5b5061524886828701615120565b9250506152576040850161503a565b90509250925092565b60008060008060008060008060008060c08b8d03121561527f57600080fd5b6152888b614c8c565b995060208b01356001600160401b03808211156152a457600080fd5b6152b08e838f01614ccc565b9a5060408d01359150808211156152c657600080fd5b6152d28e838f01614ce4565b909a50985060608d01359150808211156152eb57600080fd5b6152f78e838f01614ce4565b909850965060808d013591508082111561531057600080fd5b61531c8e838f01614ce4565b909650945060a08d013591508082111561533557600080fd5b506153428d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b60006020828403121561536d57600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b60006020828403121561548357600080fd5b5051919050565b6000808335601e198436030181126154a157600080fd5b8301803591506001600160401b038211156154bb57600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156154f857600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261552457600080fd5b8301803591506001600160401b0382111561553e57600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b838110156155eb5781810151838201526020016155d3565b50506000910152565b6000815180845261560c8160208601602086016155d0565b601f01601f19169290920160200192915050565b60808152600061563460808301888a6155a7565b828103602084015261564681886155f4565b9050828103604084015261565b8186886155a7565b915050826060830152979650505050505050565b602081526000614adc6020830184866155a7565b80820182811260008312801582168215821617156156a3576156a3614c4e565b505092915050565b80820260008212600160ff1b841416156156c7576156c7614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b600082615700576157006156db565b500690565b600082615714576157146156db565b500490565b6001600160401b03828116828216039080821115614f2157614f21614c4e565b6000823561017e1983360301811261575057600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160280821691908281146156a3576156a3614c4e565b60006001600160401b03808416806157c1576157c16156db565b92169190910492915050565b6001600160401b03818116838216019080821115614f2157614f21614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161582357615823614c4e565b5060010190565b6000835161583c8184602088016155d0565b6001600160801b0319939093169190920190815260100192915050565b600082516157508184602087016155d0565b600082601f83011261587c57600080fd5b81356001600160401b038111156158955761589561508e565b6158a8601f8201601f19166020016150cd565b8181528460208386010111156158bd57600080fd5b816020850160208301376000918101602001919091529392505050565b600061018082360312156158ed57600080fd5b6158f56150a4565b82356001600160401b038082111561590c57600080fd5b6159183683870161586b565b8352602085013591508082111561592e57600080fd5b61593a3683870161586b565b6020840152604085013591508082111561595357600080fd5b61595f3683870161586b565b6040840152606085013591508082111561597857600080fd5b6159843683870161586b565b6060840152608085013591508082111561599d57600080fd5b506159aa3682860161586b565b6080830152506159bc60a08401614c8c565b60a08201526159cd60c08401614c8c565b60c08201526159de60e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a2857600080fd5b81516136fd81614c77565b600181815b80851115615a6e578160001904821115615a5457615a54614c4e565b80851615615a6157918102915b93841c9390800290615a38565b509250929050565b600082615a8557506001610d04565b81615a9257506000610d04565b8160018114615aa85760028114615ab257615ace565b6001915050610d04565b60ff841115615ac357615ac3614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615af1575081810a610d04565b615afb8383615a33565b8060001904821115615b0f57615b0f614c4e565b029392505050565b60006136fd8383615a76565b8181036000831280158383131683831282161715614f2157614f21614c4e565b600060208284031215615b5557600080fd5b81356136fd81614c77565b600081615b6f57615b6f614c4e565b506000190190565b6020815260006136fd60208301846155f456fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212203a1d7654540a3a59378fcb8f0dc45727b0865d15b2835f5c00ae74b9a4b3506964736f6c6343000818003300000000000000000000000042424242424242424242424242424242424242420000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3180000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000000000000000000000000000000000000773594000000000000000000000000000000000000000000000000000000000006059f460","output":"0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e40565b610ca5565b60405161020f9190614eb9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ec7565b610d0a565b60405161020f9190614ee0565b34801561041557600080fd5b506103af610424366004614ec7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f28565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614f9b565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e40565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615045565b61144e565b34801561052f57600080fd5b5061022d61053e366004615071565b61168b565b34801561054f57600080fd5b5061022d61055e36600461518f565b611863565b34801561056f57600080fd5b5061022d61057e366004615260565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615045565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610687919061535b565b156106ad5760405162461bcd60e51b81526004016106a49061537d565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615422565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a919061535b565b156108375760405162461bcd60e51b81526004016106a49061537d565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b629190615471565b8935610b7160208c018c61548a565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a6154d0565b9050602002016020810190610baf91906154e6565b8a8a86818110610bc157610bc16154d0565b9050602002810190610bd3919061548a565b8a8a88818110610be557610be56154d0565b9050602002810190610bf7919061550d565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e81565b6002811115610dae57610dae614e81565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a490615556565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615620565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f5592919061566f565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff0919061535b565b1561100d5760405162461bcd60e51b81526004016106a49061537d565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d19190615471565b8735610b7160208a018a61548a565b6000805b8881101561127a576112668b8b8b84818110611202576112026154d0565b905060200201602081019061121791906154e6565b8a358a8a8681811061122b5761122b6154d0565b905060200281019061123d919061548a565b8a8a8881811061124f5761124f6154d0565b9050602002810190611261919061550d565b6128c1565b6112709083615683565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e81565b60028111156113d9576113d9614e81565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615422565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a490615556565b6114a4633b9aca00826156f1565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca0083615705565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615719565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611919919061535b565b156119365760405162461bcd60e51b81526004016106a49061537d565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e36154d0565b60200260200101518784815181106119fd576119fd6154d0565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab7919061535b565b15611ad45760405162461bcd60e51b81526004016106a49061537d565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf69190615471565b8b35610b7160208e018e61548a565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d6154d0565b9050602002810190611c4f9190615739565b8c8c86818110611c6157611c616154d0565b9050602002810190611c73919061548a565b8c8c88818110611c8557611c856154d0565b9050602002810190611c97919061550d565b8c8c8a818110611ca957611ca96154d0565b9050602002810190611cbb919061550d565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee908390615683565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca009061575a565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea2919061535b565b15611ebf5760405162461bcd60e51b81526004016106a49061537d565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f829190615771565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c6020615784565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615719565b610d0491906157a7565b60006120fb600c6020615784565b6121068360016157cd565b6121109190615784565b610d04907f000000000000000000000000000000000000000000000000000000006059f4606157cd565b6121466003602061575a565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e81565b600281111561238757612387614e81565b90525090506000816060015160028111156123a4576123a4614e81565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e906157ed565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f83615811565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e81565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b0316612773919061575a565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b60405160029061282290849060009060200161582a565b60408051601f198184030181529082905261283c91615859565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d049190615471565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e81565b60028111156129c0576129c0614e81565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e81565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e81565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b896158da565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b6158da565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e81565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a16565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f6158da565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e81565b600281111561333857613338614e81565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d6154d0565b60200260200101519050919050565b60008160018151811061342d5761342d6154d0565b6000610d0482600281518110613469576134696154d0565b60200260200101516147cd565b61348260036002615b17565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b61353090602061575a565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d0482600781518110613469576134696154d0565b60006136fd6001600160401b03808416908516615b23565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b8051909150156116865780806020019051810190613890919061535b565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b17565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b17565b61399a60c0840160a08501615b43565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615b8b83398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b17565b613a21610100840160e08501615b43565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b17565b613aa960e0840160c08501615b43565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b856158da565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b7690602061575a565b613b80848061548a565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b90602061575a565b613c18604085018561548a565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615b8b83398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e6003602061575a565b613cab602085018561548a565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d2481602061575a565b613d31606085018561548a565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd90602061575a565b613dea608085018561548a565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615b43565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615b43565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef3608086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb8602086018661548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b7614071604087018761548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a606086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615b43565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a9614268878061548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d0482600181518110613469576134696154d0565b6000610d0482600381518110613469576134696154d0565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615719565b6001600160401b03908116825260348054849260009161441c918591166157cd565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e81565b1461448d576039805490600061448083615b60565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e81565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b03166157cd565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b91906156f1565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c3576147506002856156f1565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b600080600283516148459190615705565b90506000816001600160401b038111156148615761486161508e565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a5838361575a565b815181106148b5576148b56154d0565b6020026020010151868360026148cb919061575a565b6148d6906001614c64565b815181106148e6576148e66154d0565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f198184030181529082905261492291615859565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906149629190615471565b828281518110614974576149746154d0565b6020908102919091010152600101614890565b50614993600283615705565b91505b8115614aa95760005b82811015614a96576002826149b4838361575a565b815181106149c4576149c46154d0565b6020026020010151838360026149da919061575a565b6149e5906001614c64565b815181106149f5576149f56154d0565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a3191615859565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a719190615471565b828281518110614a8357614a836154d0565b602090810291909101015260010161499f565b50614aa2600283615705565b9150614996565b80600081518110614abc57614abc6154d0565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb89190615859565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615b77565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b0380821115614d7257600080fd5b614d7e8c838d01614ccc565b985060408b0135915080821115614d9457600080fd5b614da08c838d01614ce4565b909850965060608b0135915080821115614db957600080fd5b614dc58c838d01614ce4565b909650945060808b0135915080821115614dde57600080fd5b50614deb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e1157600080fd5b5081356001600160401b03811115614e2857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e5357600080fd5b82356001600160401b03811115614e6957600080fd5b614e7585828601614dff565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614eb557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614e97565b600060208284031215614ed957600080fd5b5035919050565b60006080820190506001600160401b03808451168352806020850151166020840152806040850151166040840152506060830151614f216060840182614e97565b5092915050565b600080600080600060608688031215614f4057600080fd5b85356001600160401b0380821115614f5757600080fd5b614f6389838a01614dff565b90975095506020880135915080821115614f7c57600080fd5b50614f8988828901614dff565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fb757600080fd5b8835614fc281614c77565b975060208901356001600160401b0380821115614fde57600080fd5b614fea8c838d01614ce4565b909950975060408b013591508082111561500357600080fd5b61500f8c838d01614ccc565b965060608b0135915080821115614db957600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615025565b6000806040838503121561505857600080fd5b823561506381615025565b946020939093013593505050565b60006020828403121561508357600080fd5b81356136fd81615025565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150c7576150c761508e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156150f5576150f561508e565b604052919050565b60006001600160401b038211156151165761511661508e565b5060051b60200190565b600082601f83011261513157600080fd5b81356020615146615141836150fd565b6150cd565b8083825260208201915060208460051b87010193508684111561516857600080fd5b602086015b84811015615184578035835291830191830161516d565b509695505050505050565b6000806000606084860312156151a457600080fd5b83356001600160401b03808211156151bb57600080fd5b818601915086601f8301126151cf57600080fd5b813560206151df615141836150fd565b82815260059290921b8401810191818101908a8411156151fe57600080fd5b948201945b8386101561522557853561521681615025565b82529482019490820190615203565b9750508701359250508082111561523b57600080fd5b5061524886828701615120565b9250506152576040850161503a565b90509250925092565b60008060008060008060008060008060c08b8d03121561527f57600080fd5b6152888b614c8c565b995060208b01356001600160401b03808211156152a457600080fd5b6152b08e838f01614ccc565b9a5060408d01359150808211156152c657600080fd5b6152d28e838f01614ce4565b909a50985060608d01359150808211156152eb57600080fd5b6152f78e838f01614ce4565b909850965060808d013591508082111561531057600080fd5b61531c8e838f01614ce4565b909650945060a08d013591508082111561533557600080fd5b506153428d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b60006020828403121561536d57600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b60006020828403121561548357600080fd5b5051919050565b6000808335601e198436030181126154a157600080fd5b8301803591506001600160401b038211156154bb57600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156154f857600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261552457600080fd5b8301803591506001600160401b0382111561553e57600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b838110156155eb5781810151838201526020016155d3565b50506000910152565b6000815180845261560c8160208601602086016155d0565b601f01601f19169290920160200192915050565b60808152600061563460808301888a6155a7565b828103602084015261564681886155f4565b9050828103604084015261565b8186886155a7565b915050826060830152979650505050505050565b602081526000614adc6020830184866155a7565b80820182811260008312801582168215821617156156a3576156a3614c4e565b505092915050565b80820260008212600160ff1b841416156156c7576156c7614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b600082615700576157006156db565b500690565b600082615714576157146156db565b500490565b6001600160401b03828116828216039080821115614f2157614f21614c4e565b6000823561017e1983360301811261575057600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160280821691908281146156a3576156a3614c4e565b60006001600160401b03808416806157c1576157c16156db565b92169190910492915050565b6001600160401b03818116838216019080821115614f2157614f21614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161582357615823614c4e565b5060010190565b6000835161583c8184602088016155d0565b6001600160801b0319939093169190920190815260100192915050565b600082516157508184602087016155d0565b600082601f83011261587c57600080fd5b81356001600160401b038111156158955761589561508e565b6158a8601f8201601f19166020016150cd565b8181528460208386010111156158bd57600080fd5b816020850160208301376000918101602001919091529392505050565b600061018082360312156158ed57600080fd5b6158f56150a4565b82356001600160401b038082111561590c57600080fd5b6159183683870161586b565b8352602085013591508082111561592e57600080fd5b61593a3683870161586b565b6020840152604085013591508082111561595357600080fd5b61595f3683870161586b565b6040840152606085013591508082111561597857600080fd5b6159843683870161586b565b6060840152608085013591508082111561599d57600080fd5b506159aa3682860161586b565b6080830152506159bc60a08401614c8c565b60a08201526159cd60c08401614c8c565b60c08201526159de60e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a2857600080fd5b81516136fd81614c77565b600181815b80851115615a6e578160001904821115615a5457615a54614c4e565b80851615615a6157918102915b93841c9390800290615a38565b509250929050565b600082615a8557506001610d04565b81615a9257506000610d04565b8160018114615aa85760028114615ab257615ace565b6001915050610d04565b60ff841115615ac357615ac3614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615af1575081810a610d04565b615afb8383615a33565b8060001904821115615b0f57615b0f614c4e565b029392505050565b60006136fd8383615a76565b8181036000831280158383131683831282161715614f2157614f21614c4e565b600060208284031215615b5557600080fd5b81356136fd81614c77565b600081615b6f57615b6f614c4e565b506000190190565b6020815260006136fd60208301846155f456fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212203a1d7654540a3a59378fcb8f0dc45727b0865d15b2835f5c00ae74b9a4b3506964736f6c63430008180033","gas_used":4734199,"gas_limit":6280212,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e40565b610ca5565b60405161020f9190614eb9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ec7565b610d0a565b60405161020f9190614ee0565b34801561041557600080fd5b506103af610424366004614ec7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f28565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614f9b565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e40565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615045565b61144e565b34801561052f57600080fd5b5061022d61053e366004615071565b61168b565b34801561054f57600080fd5b5061022d61055e36600461518f565b611863565b34801561056f57600080fd5b5061022d61057e366004615260565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615045565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610687919061535b565b156106ad5760405162461bcd60e51b81526004016106a49061537d565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615422565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a919061535b565b156108375760405162461bcd60e51b81526004016106a49061537d565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b629190615471565b8935610b7160208c018c61548a565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a6154d0565b9050602002016020810190610baf91906154e6565b8a8a86818110610bc157610bc16154d0565b9050602002810190610bd3919061548a565b8a8a88818110610be557610be56154d0565b9050602002810190610bf7919061550d565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e81565b6002811115610dae57610dae614e81565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a490615556565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615620565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f5592919061566f565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff0919061535b565b1561100d5760405162461bcd60e51b81526004016106a49061537d565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d19190615471565b8735610b7160208a018a61548a565b6000805b8881101561127a576112668b8b8b84818110611202576112026154d0565b905060200201602081019061121791906154e6565b8a358a8a8681811061122b5761122b6154d0565b905060200281019061123d919061548a565b8a8a8881811061124f5761124f6154d0565b9050602002810190611261919061550d565b6128c1565b6112709083615683565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e81565b60028111156113d9576113d9614e81565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a4906153da565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615422565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a490615556565b6114a4633b9aca00826156f1565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca0083615705565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615719565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611919919061535b565b156119365760405162461bcd60e51b81526004016106a49061537d565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e36154d0565b60200260200101518784815181106119fd576119fd6154d0565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab7919061535b565b15611ad45760405162461bcd60e51b81526004016106a49061537d565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf69190615471565b8b35610b7160208e018e61548a565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d6154d0565b9050602002810190611c4f9190615739565b8c8c86818110611c6157611c616154d0565b9050602002810190611c73919061548a565b8c8c88818110611c8557611c856154d0565b9050602002810190611c97919061550d565b8c8c8a818110611ca957611ca96154d0565b9050602002810190611cbb919061550d565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee908390615683565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca009061575a565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156ab565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a4906153da565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea2919061535b565b15611ebf5760405162461bcd60e51b81526004016106a49061537d565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f829190615771565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c6020615784565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615719565b610d0491906157a7565b60006120fb600c6020615784565b6121068360016157cd565b6121109190615784565b610d04907f000000000000000000000000000000000000000000000000000000006059f4606157cd565b6121466003602061575a565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e81565b600281111561238757612387614e81565b90525090506000816060015160028111156123a4576123a4614e81565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e906157ed565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f83615811565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e81565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b0316612773919061575a565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b60405160029061282290849060009060200161582a565b60408051601f198184030181529082905261283c91615859565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d049190615471565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e81565b60028111156129c0576129c0614e81565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e81565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e81565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b896158da565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b6158da565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e81565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a16565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f6158da565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e81565b600281111561333857613338614e81565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d6154d0565b60200260200101519050919050565b60008160018151811061342d5761342d6154d0565b6000610d0482600281518110613469576134696154d0565b60200260200101516147cd565b61348260036002615b17565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b61353090602061575a565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d0482600781518110613469576134696154d0565b60006136fd6001600160401b03808416908516615b23565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b8051909150156116865780806020019051810190613890919061535b565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b17565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b17565b61399a60c0840160a08501615b43565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615b8b83398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b17565b613a21610100840160e08501615b43565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b17565b613aa960e0840160c08501615b43565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b856158da565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b7690602061575a565b613b80848061548a565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615b8b83398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b90602061575a565b613c18604085018561548a565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615b8b83398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e6003602061575a565b613cab602085018561548a565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d2481602061575a565b613d31606085018561548a565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615b8b83398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd90602061575a565b613dea608085018561548a565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615b8b83398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615b43565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615b43565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef3608086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb8602086018661548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b7614071604087018761548a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a606086018661548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615b43565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a9614268878061548a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615b8b83398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d0482600181518110613469576134696154d0565b6000610d0482600381518110613469576134696154d0565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615719565b6001600160401b03908116825260348054849260009161441c918591166157cd565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e81565b1461448d576039805490600061448083615b60565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e81565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b03166157cd565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b91906156f1565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c3576147506002856156f1565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b600080600283516148459190615705565b90506000816001600160401b038111156148615761486161508e565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a5838361575a565b815181106148b5576148b56154d0565b6020026020010151868360026148cb919061575a565b6148d6906001614c64565b815181106148e6576148e66154d0565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f198184030181529082905261492291615859565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906149629190615471565b828281518110614974576149746154d0565b6020908102919091010152600101614890565b50614993600283615705565b91505b8115614aa95760005b82811015614a96576002826149b4838361575a565b815181106149c4576149c46154d0565b6020026020010151838360026149da919061575a565b6149e5906001614c64565b815181106149f5576149f56154d0565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a3191615859565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a719190615471565b828281518110614a8357614a836154d0565b602090810291909101015260010161499f565b50614aa2600283615705565b9150614996565b80600081518110614abc57614abc6154d0565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb89190615859565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615b77565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b0380821115614d7257600080fd5b614d7e8c838d01614ccc565b985060408b0135915080821115614d9457600080fd5b614da08c838d01614ce4565b909850965060608b0135915080821115614db957600080fd5b614dc58c838d01614ce4565b909650945060808b0135915080821115614dde57600080fd5b50614deb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e1157600080fd5b5081356001600160401b03811115614e2857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e5357600080fd5b82356001600160401b03811115614e6957600080fd5b614e7585828601614dff565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614eb557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614e97565b600060208284031215614ed957600080fd5b5035919050565b60006080820190506001600160401b03808451168352806020850151166020840152806040850151166040840152506060830151614f216060840182614e97565b5092915050565b600080600080600060608688031215614f4057600080fd5b85356001600160401b0380821115614f5757600080fd5b614f6389838a01614dff565b90975095506020880135915080821115614f7c57600080fd5b50614f8988828901614dff565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fb757600080fd5b8835614fc281614c77565b975060208901356001600160401b0380821115614fde57600080fd5b614fea8c838d01614ce4565b909950975060408b013591508082111561500357600080fd5b61500f8c838d01614ccc565b965060608b0135915080821115614db957600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615025565b6000806040838503121561505857600080fd5b823561506381615025565b946020939093013593505050565b60006020828403121561508357600080fd5b81356136fd81615025565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150c7576150c761508e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156150f5576150f561508e565b604052919050565b60006001600160401b038211156151165761511661508e565b5060051b60200190565b600082601f83011261513157600080fd5b81356020615146615141836150fd565b6150cd565b8083825260208201915060208460051b87010193508684111561516857600080fd5b602086015b84811015615184578035835291830191830161516d565b509695505050505050565b6000806000606084860312156151a457600080fd5b83356001600160401b03808211156151bb57600080fd5b818601915086601f8301126151cf57600080fd5b813560206151df615141836150fd565b82815260059290921b8401810191818101908a8411156151fe57600080fd5b948201945b8386101561522557853561521681615025565b82529482019490820190615203565b9750508701359250508082111561523b57600080fd5b5061524886828701615120565b9250506152576040850161503a565b90509250925092565b60008060008060008060008060008060c08b8d03121561527f57600080fd5b6152888b614c8c565b995060208b01356001600160401b03808211156152a457600080fd5b6152b08e838f01614ccc565b9a5060408d01359150808211156152c657600080fd5b6152d28e838f01614ce4565b909a50985060608d01359150808211156152eb57600080fd5b6152f78e838f01614ce4565b909850965060808d013591508082111561531057600080fd5b61531c8e838f01614ce4565b909650945060a08d013591508082111561533557600080fd5b506153428d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b60006020828403121561536d57600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b60006020828403121561548357600080fd5b5051919050565b6000808335601e198436030181126154a157600080fd5b8301803591506001600160401b038211156154bb57600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156154f857600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261552457600080fd5b8301803591506001600160401b0382111561553e57600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b838110156155eb5781810151838201526020016155d3565b50506000910152565b6000815180845261560c8160208601602086016155d0565b601f01601f19169290920160200192915050565b60808152600061563460808301888a6155a7565b828103602084015261564681886155f4565b9050828103604084015261565b8186886155a7565b915050826060830152979650505050505050565b602081526000614adc6020830184866155a7565b80820182811260008312801582168215821617156156a3576156a3614c4e565b505092915050565b80820260008212600160ff1b841416156156c7576156c7614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b600082615700576157006156db565b500690565b600082615714576157146156db565b500490565b6001600160401b03828116828216039080821115614f2157614f21614c4e565b6000823561017e1983360301811261575057600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160280821691908281146156a3576156a3614c4e565b60006001600160401b03808416806157c1576157c16156db565b92169190910492915050565b6001600160401b03818116838216019080821115614f2157614f21614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161582357615823614c4e565b5060010190565b6000835161583c8184602088016155d0565b6001600160801b0319939093169190920190815260100192915050565b600082516157508184602087016155d0565b600082601f83011261587c57600080fd5b81356001600160401b038111156158955761589561508e565b6158a8601f8201601f19166020016150cd565b8181528460208386010111156158bd57600080fd5b816020850160208301376000918101602001919091529392505050565b600061018082360312156158ed57600080fd5b6158f56150a4565b82356001600160401b038082111561590c57600080fd5b6159183683870161586b565b8352602085013591508082111561592e57600080fd5b61593a3683870161586b565b6020840152604085013591508082111561595357600080fd5b61595f3683870161586b565b6040840152606085013591508082111561597857600080fd5b6159843683870161586b565b6060840152608085013591508082111561599d57600080fd5b506159aa3682860161586b565b6080830152506159bc60a08401614c8c565b60a08201526159cd60c08401614c8c565b60c08201526159de60e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a2857600080fd5b81516136fd81614c77565b600181815b80851115615a6e578160001904821115615a5457615a54614c4e565b80851615615a6157918102915b93841c9390800290615a38565b509250929050565b600082615a8557506001610d04565b81615a9257506000610d04565b8160018114615aa85760028114615ab257615ace565b6001915050610d04565b60ff841115615ac357615ac3614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615af1575081810a610d04565b615afb8383615a33565b8060001904821115615b0f57615b0f614c4e565b029392505050565b60006136fd8383615a76565b8181036000831280158383131683831282161715614f2157614f21614c4e565b600060208284031215615b5557600080fd5b81356136fd81614c77565b600081615b6f57615b6f614c4e565b506000190190565b6020815260006136fd60208301846155f456fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212203a1d7654540a3a59378fcb8f0dc45727b0865d15b2835f5c00ae74b9a4b3506964736f6c63430008180033","nonce":10,"gas_used":5159999},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4ebc3f","logs":[{"address":"0x610178da211fef7d417bc0e6fed39f05609ad788","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x512c15c3770e645be22b8b577a2116eae30b1a28221ddff3feb06ada33df8b1c","block_number":6}],"historical_states":null} \ No newline at end of file diff --git a/contracts/scripts/anvil/upgrade_add_type_hash_to_batcher_payment_service.sh b/contracts/scripts/anvil/upgrade_add_type_hash_to_batcher_payment_service.sh deleted file mode 100644 index 08b4456fd..000000000 --- a/contracts/scripts/anvil/upgrade_add_type_hash_to_batcher_payment_service.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -# cd to the directory of this script so that this can be run from anywhere -parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ) - -cd "$parent_path" - -cd ../../ - -jq 'del(.block)' scripts/anvil/state/alignedlayer-deployed-anvil-state.json > scripts/anvil/state/alignedlayer-deployed-anvil-state-tmp.json - -cp -f scripts/anvil/state/alignedlayer-deployed-anvil-state-tmp.json scripts/anvil/state/alignedlayer-deployed-anvil-state.json - -rm scripts/anvil/state/alignedlayer-deployed-anvil-state-tmp.json - -anvil --load-state scripts/anvil/state/alignedlayer-deployed-anvil-state.json --dump-state scripts/anvil/state/alignedlayer-deployed-anvil-state.json & - -sleep 2 - -# Deploy Batcher Payments Contract -forge_output=$(forge script script/upgrade/BatcherPaymentServiceUpgradeAddTypeHash.s.sol \ - "./script/output/devnet/alignedlayer_deployment_output.json" \ - "./script/deploy/config/devnet/batcher-payment-service.devnet.config.json" \ - --rpc-url "http://localhost:8545" \ - --private-key "0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356" \ - --broadcast \ - --legacy \ - --verify \ - --sig "run(string alignedLayerDeploymentFilePath,string batcherPaymentServiceConfigFilePath)") - -echo "$forge_output" - -pkill anvil - -# Extract the batcher payment service values from the output -batcher_payment_service_implementation=$(echo "$forge_output" | awk '/1: address/ {print $3}') - -# Use the extracted value to replace the batcher payment service values in alignedlayer_deployment_output.json and save it to a temporary file -jq --arg batcher_payment_service_implementation "$batcher_payment_service_implementation" '.addresses.batcherPaymentServiceImplementation = $batcher_payment_service_implementation' "./script/output/devnet/alignedlayer_deployment_output.json" > "./script/output/devnet/alignedlayer_deployment_output.temp.json" - -# Replace the original file with the temporary file -mv "./script/output/devnet/alignedlayer_deployment_output.temp.json" "./script/output/devnet/alignedlayer_deployment_output.json" - -# Delete the temporary file -rm -f "./script/output/devnet/alignedlayer_deployment_output.temp.json" diff --git a/contracts/scripts/upgrade_add_type_hash_to_batcher_payment_service.sh b/contracts/scripts/upgrade_add_type_hash_to_batcher_payment_service.sh deleted file mode 100644 index 9d7558508..000000000 --- a/contracts/scripts/upgrade_add_type_hash_to_batcher_payment_service.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -# cd to the directory of this script so that this can be run from anywhere -parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ) - -cd "$parent_path" - -cd ../ - -source scripts/.env - -# Deploy Batcher Payments Contract -forge_output=$(forge script script/upgrade/BatcherPaymentServiceUpgradeAddTypeHash.s.sol \ - $OUTPUT_PATH \ - $BATCHER_PAYMENT_SERVICE_CONFIG_PATH \ - --rpc-url $RPC_URL \ - --private-key $PRIVATE_KEY \ - --broadcast \ - --legacy \ - --verify \ - --etherscan-api-key $ETHERSCAN_API_KEY \ - --sig "run(string alignedLayerDeploymentFilePath,string batcherPaymentServiceConfigFilePath)") - -echo "$forge_output" - -pkill anvil - -# Extract the batcher payment service values from the output -batcher_payment_service_implementation=$(echo "$forge_output" | awk '/1: address/ {print $3}') - -# Use the extracted value to replace the batcher payment service values in alignedlayer_deployment_output.json and save it to a temporary file -jq --arg batcher_payment_service_implementation "$batcher_payment_service_implementation" '.addresses.batcherPaymentServiceImplementation = $batcher_payment_service_implementation' $OUTPUT_PATH > "$OUTPUT_PATH.temp" - -# Replace the original file with the temporary file -mv "$OUTPUT_PATH.temp" $OUTPUT_PATH - -# Delete the temporary file -rm -f "$OUTPUT_PATH.temp" diff --git a/contracts/src/core/BatcherPaymentService.sol b/contracts/src/core/BatcherPaymentService.sol index e0b8419b5..e0133715c 100644 --- a/contracts/src/core/BatcherPaymentService.sol +++ b/contracts/src/core/BatcherPaymentService.sol @@ -4,8 +4,6 @@ import {Initializable} from "@openzeppelin-upgrades/contracts/proxy/utils/Initia import {OwnableUpgradeable} from "@openzeppelin-upgrades/contracts/access/OwnableUpgradeable.sol"; import {PausableUpgradeable} from "@openzeppelin-upgrades/contracts/security/PausableUpgradeable.sol"; import {UUPSUpgradeable} from "@openzeppelin-upgrades/contracts/proxy/utils/UUPSUpgradeable.sol"; -import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; -import {EIP712} from "../../lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol"; import {IAlignedLayerServiceManager} from "./IAlignedLayerServiceManager.sol"; import {BatcherPaymentServiceStorage} from "./BatcherPaymentServiceStorage.sol"; @@ -14,11 +12,8 @@ contract BatcherPaymentService is OwnableUpgradeable, PausableUpgradeable, UUPSUpgradeable, - BatcherPaymentServiceStorage, - EIP712 + BatcherPaymentServiceStorage { - using ECDSA for bytes32; - // CONSTANTS = 100 Blocks * 12 second block time. uint256 public constant UNLOCK_BLOCK_TIME = 3600 seconds; @@ -31,29 +26,22 @@ contract BatcherPaymentService is // ERRORS error OnlyBatcherAllowed(address caller); // 152bc288 - error NoLeavesSubmitted(); // e5180e03 - error NoProofSubmitterSignatures(); // 32742c04 - error NotEnoughLeaves(uint256 leavesQty, uint256 signaturesQty); // 320f0a1b - error LeavesNotPowerOfTwo(uint256 leavesQty); // 6b1651e1 + error NoProofSubmitters(); // c43ac290 error NoFeePerProof(); // a3a8658a error InsufficientFeeForAggregator(uint256 required, uint256 available); // 7899ec71 error UserHasNoFundsToUnlock(address user); // b38340cf error UserHasNoFundsToLock(address user); // 6cc12bc2 error PayerInsufficientBalance(uint256 balance, uint256 amount); // 21c3d50f error FundsLocked(uint256 unlockBlockTime, uint256 currentBlockTime); // bedc4e5a - error InvalidSignature(); // 8baa579f - error InvalidNonce(uint256 expected, uint256 actual); // 06427aeb - error InvalidMaxFee(uint256 maxFee, uint256 actualFee); // f59adf4a - error SignerInsufficientBalance( - address signer, + error SubmissionInsufficientBalance( + address sender, uint256 balance, uint256 required - ); // 955c0664 - error InvalidMerkleRoot(bytes32 expected, bytes32 actual); // 9f13b65c + ); // 4f779ceb error InvalidAddress(string param); // 161eb542 // CONSTRUCTOR & INITIALIZER - constructor() EIP712("Aligned", "1") { + constructor() { _disableInitializers(); } @@ -68,8 +56,7 @@ contract BatcherPaymentService is function initialize( IAlignedLayerServiceManager _alignedLayerServiceManager, address _batcherPaymentServiceOwner, - address _batcherWallet, - bytes32 _noncedVerificationDataTypeHash + address _batcherWallet ) public initializer { if (address(_alignedLayerServiceManager) == address(0)) { revert InvalidAddress("alignedServiceManager"); @@ -82,25 +69,11 @@ contract BatcherPaymentService is } __Ownable_init(); // default is msg.sender __UUPSUpgradeable_init(); + __Pausable_init(); _transferOwnership(_batcherPaymentServiceOwner); alignedLayerServiceManager = _alignedLayerServiceManager; batcherWallet = _batcherWallet; - noncedVerificationDataTypeHash = _noncedVerificationDataTypeHash; - } - - // Defined in types.rs - // keccak256("NoncedVerificationData(bytes32 verification_data_hash,uint256 nonce,uint256 max_fee)") - function initializeNoncedVerificationDataTypeHash( - bytes32 _noncedVerificationDataTypeHash - ) public reinitializer(2) onlyOwner { - noncedVerificationDataTypeHash = _noncedVerificationDataTypeHash; - } - - function setNoncedVerificationDataTypeHash( - bytes32 _newTypeHash - ) public onlyOwner { - noncedVerificationDataTypeHash = _newTypeHash; } // PAYABLE FUNCTIONS @@ -114,48 +87,42 @@ contract BatcherPaymentService is function createNewTask( bytes32 batchMerkleRoot, string calldata batchDataPointer, - bytes32[] calldata leaves, // padded to the next power of 2 - SignatureData[] calldata signatures, // actual length (proof sumbitters == proofs submitted) + address[] calldata proofSubmitters, uint256 feeForAggregator, uint256 feePerProof, uint256 respondToTaskFeeLimit ) external onlyBatcher whenNotPaused { - uint256 leavesQty = leaves.length; - uint256 signaturesQty = signatures.length; - - if (leavesQty == 0) { - revert NoLeavesSubmitted(); - } + uint256 proofSubmittersQty = proofSubmitters.length; - if (signaturesQty == 0) { - revert NoProofSubmitterSignatures(); - } - - if (leavesQty < signaturesQty) { - revert NotEnoughLeaves(leavesQty, signaturesQty); - } - - if ((leavesQty & (leavesQty - 1)) != 0) { - revert LeavesNotPowerOfTwo(leavesQty); + if (proofSubmittersQty == 0) { + revert NoProofSubmitters(); } if (feePerProof == 0) { revert NoFeePerProof(); } - if (feePerProof * signaturesQty <= feeForAggregator) { + if (feePerProof * proofSubmittersQty <= feeForAggregator) { revert InsufficientFeeForAggregator( feeForAggregator, - feePerProof * signaturesQty + feePerProof * proofSubmittersQty ); } - _checkMerkleRootAndVerifySignatures( - leaves, - batchMerkleRoot, - signatures, - feePerProof - ); + // decrease user balances + for (uint32 i = 0; i < proofSubmittersQty; i++) { + address proofSubmitter = proofSubmitters[i]; + UserInfo storage user = userData[proofSubmitter]; + + // if one user does not have enough balance, the whole batch fails + if (user.balance < feePerProof) { + revert SubmissionInsufficientBalance(proofSubmitter, user.balance, feePerProof); + } + + user.nonce++; + + user.balance -= feePerProof; + } // call alignedLayerServiceManager // with value to fund the task's response @@ -168,7 +135,7 @@ contract BatcherPaymentService is emit TaskCreated(batchMerkleRoot, feePerProof); payable(batcherWallet).transfer( - (feePerProof * signaturesQty) - feeForAggregator + (feePerProof * proofSubmittersQty) - feeForAggregator ); } @@ -227,105 +194,6 @@ contract BatcherPaymentService is onlyOwner // solhint-disable-next-line no-empty-blocks {} - function _checkMerkleRootAndVerifySignatures( - bytes32[] calldata leaves, - bytes32 batchMerkleRoot, - SignatureData[] calldata signatures, - uint256 feePerProof - ) private { - uint256 numNodesInLayer = leaves.length / 2; - bytes32[] memory layer = new bytes32[](numNodesInLayer); - - uint32 i = 0; - - // Calculate the hash of the next layer of the Merkle tree - // and verify the signatures up to numNodesInLayer - for (i = 0; i < numNodesInLayer; i++) { - layer[i] = keccak256( - abi.encodePacked(leaves[2 * i], leaves[2 * i + 1]) - ); - - _verifySignatureAndDecreaseBalance( - leaves[i], - signatures[i], - feePerProof - ); - } - - // Verify the rest of the signatures - for (; i < signatures.length; i++) { - _verifySignatureAndDecreaseBalance( - leaves[i], - signatures[i], - feePerProof - ); - } - - // The next layer above has half as many nodes - numNodesInLayer /= 2; - - // Continue calculating Merkle root for remaining layers - while (numNodesInLayer != 0) { - // Overwrite the first numNodesInLayer nodes in layer with the pairwise hashes of their children - for (i = 0; i < numNodesInLayer; i++) { - layer[i] = keccak256( - abi.encodePacked(layer[2 * i], layer[2 * i + 1]) - ); - } - - // The next layer above has half as many nodes - numNodesInLayer /= 2; - } - - if (leaves.length == 1) { - if (leaves[0] != batchMerkleRoot) { - revert InvalidMerkleRoot(batchMerkleRoot, leaves[0]); - } - } else if (layer[0] != batchMerkleRoot) { - revert InvalidMerkleRoot(batchMerkleRoot, layer[0]); - } - } - - function _verifySignatureAndDecreaseBalance( - bytes32 leaf, - SignatureData calldata signatureData, - uint256 feePerProof - ) private { - if (signatureData.maxFee < feePerProof) { - revert InvalidMaxFee(signatureData.maxFee, feePerProof); - } - - bytes32 structHash = keccak256( - abi.encode( - noncedVerificationDataTypeHash, - leaf, - signatureData.nonce, - signatureData.maxFee - ) - ); - - bytes32 hash = _hashTypedDataV4(structHash); - - address signer = ECDSA.recover(hash, signatureData.signature); - - UserInfo storage signerData = userData[signer]; - - if (signerData.nonce != signatureData.nonce) { - revert InvalidNonce(signerData.nonce, signatureData.nonce); - } - signerData.nonce++; - - if (signerData.balance < feePerProof) { - revert SignerInsufficientBalance( - signer, - signerData.balance, - feePerProof - ); - } - - signerData.balance -= feePerProof; - } - function user_balances(address account) public view returns (uint256) { return userData[account].balance; } diff --git a/contracts/src/core/BatcherPaymentServiceStorage.sol b/contracts/src/core/BatcherPaymentServiceStorage.sol index 1b6667424..156d74dcd 100644 --- a/contracts/src/core/BatcherPaymentServiceStorage.sol +++ b/contracts/src/core/BatcherPaymentServiceStorage.sol @@ -1,13 +1,8 @@ pragma solidity ^0.8.12; + import {IAlignedLayerServiceManager} from "./IAlignedLayerServiceManager.sol"; abstract contract BatcherPaymentServiceStorage { - struct SignatureData { - bytes signature; - uint256 nonce; - uint256 maxFee; - } - struct UserInfo { uint256 balance; uint256 unlockBlockTime; @@ -21,9 +16,7 @@ abstract contract BatcherPaymentServiceStorage { // map to user data mapping(address => UserInfo) public userData; - bytes32 public noncedVerificationDataTypeHash; - // storage gap for upgradeability // solhint-disable-next-line var-name-mixedcase - uint256[23] private __GAP; + uint256[24] private __GAP; } diff --git a/core/chainio/avs_reader.go b/core/chainio/avs_reader.go index 60c42f137..d23403b03 100644 --- a/core/chainio/avs_reader.go +++ b/core/chainio/avs_reader.go @@ -1,8 +1,12 @@ package chainio import ( + "context" + "github.com/ethereum/go-ethereum/accounts/abi/bind" - gethcommon "github.com/ethereum/go-ethereum/common" + ethcommon "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/crypto" + servicemanager "github.com/yetanotherco/aligned_layer/contracts/bindings/AlignedLayerServiceManager" contractERC20Mock "github.com/yetanotherco/aligned_layer/contracts/bindings/ERC20Mock" "github.com/yetanotherco/aligned_layer/core/config" @@ -13,8 +17,9 @@ import ( type AvsReader struct { *sdkavsregistry.ChainReader - AvsContractBindings *AvsServiceBindings - logger logging.Logger + AvsContractBindings *AvsServiceBindings + AlignedLayerServiceManagerAddr ethcommon.Address + logger logging.Logger } func NewAvsReaderFromConfig(baseConfig *config.BaseConfig, ecdsaConfig *config.EcdsaConfig) (*AvsReader, error) { @@ -41,13 +46,14 @@ func NewAvsReaderFromConfig(baseConfig *config.BaseConfig, ecdsaConfig *config.E } return &AvsReader{ - ChainReader: chainReader, - AvsContractBindings: avsServiceBindings, - logger: baseConfig.Logger, + ChainReader: chainReader, + AvsContractBindings: avsServiceBindings, + AlignedLayerServiceManagerAddr: baseConfig.AlignedLayerDeploymentConfig.AlignedLayerServiceManagerAddr, + logger: baseConfig.Logger, }, nil } -func (r *AvsReader) GetErc20Mock(tokenAddr gethcommon.Address) (*contractERC20Mock.ContractERC20Mock, error) { +func (r *AvsReader) GetErc20Mock(tokenAddr ethcommon.Address) (*contractERC20Mock.ContractERC20Mock, error) { erc20Mock, err := contractERC20Mock.NewContractERC20Mock(tokenAddr, &r.AvsContractBindings.ethClient) if err != nil { // Retry with fallback client @@ -59,6 +65,40 @@ func (r *AvsReader) GetErc20Mock(tokenAddr gethcommon.Address) (*contractERC20Mo return erc20Mock, nil } -func (r *AvsReader) IsOperatorRegistered(address gethcommon.Address) (bool, error) { +func (r *AvsReader) IsOperatorRegistered(address ethcommon.Address) (bool, error) { return r.ChainReader.IsOperatorRegistered(&bind.CallOpts{}, address) } + +// Returns all the "NewBatchV3" logs that have not been responded starting from the given block number +func (r *AvsReader) GetNotRespondedTasksFrom(fromBlock uint64) ([]servicemanager.ContractAlignedLayerServiceManagerNewBatchV3, error) { + logs, err := r.AvsContractBindings.ServiceManager.FilterNewBatchV3(&bind.FilterOpts{Start: fromBlock, End: nil, Context: context.Background()}, nil) + + if err != nil { + return nil, err + } + + var tasks []servicemanager.ContractAlignedLayerServiceManagerNewBatchV3 + + for logs.Next() { + task, err := r.AvsContractBindings.ServiceManager.ParseNewBatchV3(logs.Event.Raw) + if err != nil { + return nil, err + } + + // now check if its finalized or not before appending + batchIdentifier := append(task.BatchMerkleRoot[:], task.SenderAddress[:]...) + batchIdentifierHash := *(*[32]byte)(crypto.Keccak256(batchIdentifier)) + state, err := r.AvsContractBindings.ServiceManager.ContractAlignedLayerServiceManagerCaller.BatchesState(nil, batchIdentifierHash) + + if err != nil { + return nil, err + } + + // append the task if not responded yet + if !state.Responded { + tasks = append(tasks, *task) + } + } + + return tasks, nil +} diff --git a/core/chainio/avs_subscriber.go b/core/chainio/avs_subscriber.go index 0c8438a2c..29afab7dc 100644 --- a/core/chainio/avs_subscriber.go +++ b/core/chainio/avs_subscriber.go @@ -4,14 +4,11 @@ import ( "context" "encoding/hex" "fmt" - "github.com/ethereum/go-ethereum" - "github.com/ethereum/go-ethereum/accounts/abi" - ethcommon "github.com/ethereum/go-ethereum/common" - "math/big" - "strings" "sync" "time" + ethcommon "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/event" @@ -97,12 +94,14 @@ func (s *AvsSubscriber) SubscribeToNewTasksV2(newTaskCreatedChan chan *servicema case newBatch := <-internalChannel: s.processNewBatchV2(newBatch, batchesSet, newBatchMutex, newTaskCreatedChan) case <-pollLatestBatchTicker.C: - latestBatch, err := s.getLatestTaskFromEthereumV2() + latestBatch, err := s.getLatestNotRespondedTaskFromEthereumV2() if err != nil { s.logger.Debug("Failed to get latest task from blockchain", "err", err) continue } - s.processNewBatchV2(latestBatch, batchesSet, newBatchMutex, newTaskCreatedChan) + if latestBatch != nil { + s.processNewBatchV2(latestBatch, batchesSet, newBatchMutex, newTaskCreatedChan) + } } } @@ -132,7 +131,7 @@ func (s *AvsSubscriber) SubscribeToNewTasksV2(newTaskCreatedChan chan *servicema return errorChannel, nil } - + func (s *AvsSubscriber) SubscribeToNewTasksV3(newTaskCreatedChan chan *servicemanager.ContractAlignedLayerServiceManagerNewBatchV3) (chan error, error) { // Create a new channel to receive new tasks internalChannel := make(chan *servicemanager.ContractAlignedLayerServiceManagerNewBatchV3) @@ -165,12 +164,14 @@ func (s *AvsSubscriber) SubscribeToNewTasksV3(newTaskCreatedChan chan *servicema case newBatch := <-internalChannel: s.processNewBatchV3(newBatch, batchesSet, newBatchMutex, newTaskCreatedChan) case <-pollLatestBatchTicker.C: - latestBatch, err := s.getLatestTaskFromEthereumV3() + latestBatch, err := s.getLatestNotRespondedTaskFromEthereumV3() if err != nil { s.logger.Debug("Failed to get latest task from blockchain", "err", err) continue } - s.processNewBatchV3(latestBatch, batchesSet, newBatchMutex, newTaskCreatedChan) + if latestBatch != nil { + s.processNewBatchV3(latestBatch, batchesSet, newBatchMutex, newTaskCreatedChan) + } } } @@ -254,9 +255,9 @@ func (s *AvsSubscriber) processNewBatchV2(batch *servicemanager.ContractAlignedL if _, ok := batchesSet[batchIdentifierHash]; !ok { s.logger.Info("Received new task", - "batchMerkleRoot", hex.EncodeToString(batch.BatchMerkleRoot[:]), - "senderAddress", hex.EncodeToString(batch.SenderAddress[:]), - "batchIdentifierHash", hex.EncodeToString(batchIdentifierHash[:]),) + "batchMerkleRoot", hex.EncodeToString(batch.BatchMerkleRoot[:]), + "senderAddress", hex.EncodeToString(batch.SenderAddress[:]), + "batchIdentifierHash", hex.EncodeToString(batchIdentifierHash[:])) batchesSet[batchIdentifierHash] = struct{}{} newTaskCreatedChan <- batch @@ -280,9 +281,9 @@ func (s *AvsSubscriber) processNewBatchV3(batch *servicemanager.ContractAlignedL if _, ok := batchesSet[batchIdentifierHash]; !ok { s.logger.Info("Received new task", - "batchMerkleRoot", hex.EncodeToString(batch.BatchMerkleRoot[:]), - "senderAddress", hex.EncodeToString(batch.SenderAddress[:]), - "batchIdentifierHash", hex.EncodeToString(batchIdentifierHash[:]),) + "batchMerkleRoot", hex.EncodeToString(batch.BatchMerkleRoot[:]), + "senderAddress", hex.EncodeToString(batch.SenderAddress[:]), + "batchIdentifierHash", hex.EncodeToString(batchIdentifierHash[:])) batchesSet[batchIdentifierHash] = struct{}{} newTaskCreatedChan <- batch @@ -297,15 +298,13 @@ func (s *AvsSubscriber) processNewBatchV3(batch *servicemanager.ContractAlignedL } } -// getLatestTaskFromEthereum queries the blockchain for the latest task using the FilterLogs method. -// The alternative to this is using the FilterNewBatch method from the contract's filterer, but it requires -// to iterate over all the logs, which is not efficient and not needed since we only need the latest task. -func (s *AvsSubscriber) getLatestTaskFromEthereumV2() (*servicemanager.ContractAlignedLayerServiceManagerNewBatchV2, error) { +// getLatestNotRespondedTaskFromEthereum queries the blockchain for the latest not responded task using the FilterNewBatch method. +func (s *AvsSubscriber) getLatestNotRespondedTaskFromEthereumV2() (*servicemanager.ContractAlignedLayerServiceManagerNewBatchV2, error) { latestBlock, err := s.AvsContractBindings.ethClient.BlockNumber(context.Background()) if err != nil { latestBlock, err = s.AvsContractBindings.ethClientFallback.BlockNumber(context.Background()) if err != nil { - return nil, fmt.Errorf("failed to get latest block number: %w", err) + return nil, err } } @@ -317,59 +316,48 @@ func (s *AvsSubscriber) getLatestTaskFromEthereumV2() (*servicemanager.ContractA fromBlock = latestBlock - BlockInterval } - alignedLayerServiceManagerABI, err := abi.JSON(strings.NewReader(servicemanager.ContractAlignedLayerServiceManagerMetaData.ABI)) + logs, err := s.AvsContractBindings.ServiceManager.FilterNewBatchV2(&bind.FilterOpts{Start: fromBlock, End: nil, Context: context.Background()}, nil) if err != nil { - return nil, fmt.Errorf("failed to parse ABI: %w", err) + return nil, err } - // We just care about the NewBatch event - newBatchEvent := alignedLayerServiceManagerABI.Events["NewBatchV2"] - if newBatchEvent.ID == (ethcommon.Hash{}) { - return nil, fmt.Errorf("NewBatch event not found in ABI") - } + var lastLog *servicemanager.ContractAlignedLayerServiceManagerNewBatchV2 - query := ethereum.FilterQuery{ - FromBlock: big.NewInt(int64(fromBlock)), - ToBlock: big.NewInt(int64(latestBlock)), - Addresses: []ethcommon.Address{s.AlignedLayerServiceManagerAddr}, - Topics: [][]ethcommon.Hash{{newBatchEvent.ID, {}}}, + // Iterate over the logs until the end + for logs.Next() { + lastLog = logs.Event } - logs, err := s.AvsContractBindings.ethClient.FilterLogs(context.Background(), query) - if err != nil { - logs, err = s.AvsContractBindings.ethClientFallback.FilterLogs(context.Background(), query) - if err != nil { - return nil, fmt.Errorf("failed to get logs: %w", err) - } + if err := logs.Error(); err != nil { + return nil, err } - if len(logs) == 0 { - return nil, fmt.Errorf("no logs found") + if lastLog == nil { + return nil, nil } - lastLog := logs[len(logs)-1] + batchIdentifier := append(lastLog.BatchMerkleRoot[:], lastLog.SenderAddress[:]...) + batchIdentifierHash := *(*[32]byte)(crypto.Keccak256(batchIdentifier)) + state, err := s.AvsContractBindings.ServiceManager.ContractAlignedLayerServiceManagerCaller.BatchesState(nil, batchIdentifierHash) - var latestTask servicemanager.ContractAlignedLayerServiceManagerNewBatchV2 - err = alignedLayerServiceManagerABI.UnpackIntoInterface(&latestTask, "NewBatchV2", lastLog.Data) if err != nil { - return nil, fmt.Errorf("failed to unpack log data: %w", err) + return nil, err } - // The second topic is the batch merkle root, as it is an indexed variable in the contract - latestTask.BatchMerkleRoot = lastLog.Topics[1] + if state.Responded { + return nil, nil + } - return &latestTask, nil + return lastLog, nil } -// getLatestTaskFromEthereum queries the blockchain for the latest task using the FilterLogs method. -// The alternative to this is using the FilterNewBatch method from the contract's filterer, but it requires -// to iterate over all the logs, which is not efficient and not needed since we only need the latest task. -func (s *AvsSubscriber) getLatestTaskFromEthereumV3() (*servicemanager.ContractAlignedLayerServiceManagerNewBatchV3, error) { +// getLatestNotRespondedTaskFromEthereum queries the blockchain for the latest not responded task using the FilterNewBatch method. +func (s *AvsSubscriber) getLatestNotRespondedTaskFromEthereumV3() (*servicemanager.ContractAlignedLayerServiceManagerNewBatchV3, error) { latestBlock, err := s.AvsContractBindings.ethClient.BlockNumber(context.Background()) if err != nil { latestBlock, err = s.AvsContractBindings.ethClientFallback.BlockNumber(context.Background()) if err != nil { - return nil, fmt.Errorf("failed to get latest block number: %w", err) + return nil, err } } @@ -381,48 +369,39 @@ func (s *AvsSubscriber) getLatestTaskFromEthereumV3() (*servicemanager.ContractA fromBlock = latestBlock - BlockInterval } - alignedLayerServiceManagerABI, err := abi.JSON(strings.NewReader(servicemanager.ContractAlignedLayerServiceManagerMetaData.ABI)) + logs, err := s.AvsContractBindings.ServiceManager.FilterNewBatchV3(&bind.FilterOpts{Start: fromBlock, End: nil, Context: context.Background()}, nil) if err != nil { - return nil, fmt.Errorf("failed to parse ABI: %w", err) + return nil, err } - // We just care about the NewBatch event - newBatchEvent := alignedLayerServiceManagerABI.Events["NewBatchV3"] - if newBatchEvent.ID == (ethcommon.Hash{}) { - return nil, fmt.Errorf("NewBatch event not found in ABI") - } + var lastLog *servicemanager.ContractAlignedLayerServiceManagerNewBatchV3 - query := ethereum.FilterQuery{ - FromBlock: big.NewInt(int64(fromBlock)), - ToBlock: big.NewInt(int64(latestBlock)), - Addresses: []ethcommon.Address{s.AlignedLayerServiceManagerAddr}, - Topics: [][]ethcommon.Hash{{newBatchEvent.ID, {}}}, + // Iterate over the logs until the end + for logs.Next() { + lastLog = logs.Event } - logs, err := s.AvsContractBindings.ethClient.FilterLogs(context.Background(), query) - if err != nil { - logs, err = s.AvsContractBindings.ethClientFallback.FilterLogs(context.Background(), query) - if err != nil { - return nil, fmt.Errorf("failed to get logs: %w", err) - } + if err := logs.Error(); err != nil { + return nil, err } - if len(logs) == 0 { - return nil, fmt.Errorf("no logs found") + if lastLog == nil { + return nil, nil } - lastLog := logs[len(logs)-1] + batchIdentifier := append(lastLog.BatchMerkleRoot[:], lastLog.SenderAddress[:]...) + batchIdentifierHash := *(*[32]byte)(crypto.Keccak256(batchIdentifier)) + state, err := s.AvsContractBindings.ServiceManager.ContractAlignedLayerServiceManagerCaller.BatchesState(nil, batchIdentifierHash) - var latestTask servicemanager.ContractAlignedLayerServiceManagerNewBatchV3 - err = alignedLayerServiceManagerABI.UnpackIntoInterface(&latestTask, "NewBatchV3", lastLog.Data) if err != nil { - return nil, fmt.Errorf("failed to unpack log data: %w", err) + return nil, err } - // The second topic is the batch merkle root, as it is an indexed variable in the contract - latestTask.BatchMerkleRoot = lastLog.Topics[1] + if state.Responded { + return nil, nil + } - return &latestTask, nil + return lastLog, nil } func (s *AvsSubscriber) WaitForOneBlock(startBlock uint64) error { diff --git a/core/config/aggregator.go b/core/config/aggregator.go index 2ba806c74..740e75ae0 100644 --- a/core/config/aggregator.go +++ b/core/config/aggregator.go @@ -2,10 +2,11 @@ package config import ( "errors" - sdkutils "github.com/Layr-Labs/eigensdk-go/utils" - "github.com/ethereum/go-ethereum/common" "log" "os" + + sdkutils "github.com/Layr-Labs/eigensdk-go/utils" + "github.com/ethereum/go-ethereum/common" ) type AggregatorConfig struct { @@ -18,6 +19,7 @@ type AggregatorConfig struct { AvsServiceManagerAddress common.Address EnableMetrics bool MetricsIpPortAddress string + TelemetryIpPortAddress string } } @@ -28,6 +30,7 @@ type AggregatorConfigFromYaml struct { AvsServiceManagerAddress common.Address `yaml:"avs_service_manager_address"` EnableMetrics bool `yaml:"enable_metrics"` MetricsIpPortAddress string `yaml:"metrics_ip_port_address"` + TelemetryIpPortAddress string `yaml:"telemetry_ip_port_address"` } `yaml:"aggregator"` } @@ -68,6 +71,7 @@ func NewAggregatorConfig(configFilePath string) *AggregatorConfig { AvsServiceManagerAddress common.Address EnableMetrics bool MetricsIpPortAddress string + TelemetryIpPortAddress string }(aggregatorConfigFromYaml.Aggregator), } } diff --git a/core/config/operator.go b/core/config/operator.go index 8583a7f6a..cac263f7a 100644 --- a/core/config/operator.go +++ b/core/config/operator.go @@ -27,6 +27,7 @@ type OperatorConfig struct { EnableMetrics bool MetricsIpPortAddress string MaxBatchSize int64 + LastProcessedBatchFilePath string } } @@ -43,6 +44,7 @@ type OperatorConfigFromYaml struct { EnableMetrics bool `yaml:"enable_metrics"` MetricsIpPortAddress string `yaml:"metrics_ip_port_address"` MaxBatchSize int64 `yaml:"max_batch_size"` + LastProcessedBatchFilePath string `yaml:"last_processed_batch_filepath"` } `yaml:"operator"` EcdsaConfigFromYaml EcdsaConfigFromYaml `yaml:"ecdsa"` BlsConfigFromYaml BlsConfigFromYaml `yaml:"bls"` @@ -92,6 +94,7 @@ func NewOperatorConfig(configFilePath string) *OperatorConfig { EnableMetrics bool MetricsIpPortAddress string MaxBatchSize int64 + LastProcessedBatchFilePath string }(operatorConfigFromYaml.Operator), } } diff --git a/docs/1_introduction/0_about_aligned.md b/docs/1_introduction/0_about_aligned.md index 4a28c5957..9e5b58b21 100644 --- a/docs/1_introduction/0_about_aligned.md +++ b/docs/1_introduction/0_about_aligned.md @@ -8,14 +8,14 @@ If you are unfamiliar with ZK and why this is useful, see [Why ZK and Aligned?]( ## Mission -Our mission is to accelerate Ethereum's roadmap and the adoption of verifiable computation by enabling fast and economical verification of ZK and validity proofs. +Our mission is to accelerate Ethereum's roadmap and the adoption of verifiable computation by enabling fast and economical verification of ZK and validity proofs. ## What real value does Aligned bring to the table? Blockchains are verifiable computers. -We live in a chaotic world where there will be a huge demand for computation that needs to be trusted. +We live in a chaotic world where there will be a huge demand for computation that needs to be trusted. -Current blockchain models are inefficient: each node must re-execute each transaction or operation, making the weakest and slowest devices the bottleneck. Unlike in Web2, where adding more hardware can increase performance, in these systems, additional hardware primarily enhances reliability rather than speed. Alternative L1s to Ethereum make trade-offs, accepting bigger hardware or changing the consensus to be faster but with fewer security guarantees. In other words, they reduce costs and increase speed at a great expense of lower security guarantees. +Current blockchain models are inefficient: each node must re-execute each transaction or operation, making the weakest and slowest devices the bottleneck. Unlike in Web2, where adding more hardware can increase performance, in these systems, additional hardware primarily enhances reliability rather than speed. Alternative L1s to Ethereum make trade-offs, accepting bigger hardware or changing the consensus to be faster but with fewer security guarantees. In other words, they reduce costs and increase speed at a great expense of lower security guarantees. On the other hand, Zero-knowledge/validity proofs (ZK) provide a new framework where we do not have to make such compromises. The basic premise is that a party can generate a very short proof of a computation, and the nodes can quickly verify that proof instead of re-executing the computation. The computation can be quite large, comprising many different transactions. This enables the delegation of execution off-chain with the same guarantees, leading to increased throughput and lower operational costs. This led to the rollup-centric roadmap of Ethereum, featuring multiple L2s, but at the expense of fragmented liquidity and complex user experience. Many of these problems could be solved by ZK bridges, but they remain expensive, and the go-to-market time is high. @@ -63,25 +63,24 @@ Other solutions focus on building a separate L1 for proof verification (which se The following table contains costs estimates for Aligned, assuming a batch size of 20 proofs. -| Proof system | Ethereum | Aligned - Fast mode | Aligned - Aggregation | -| -------- | -------- | -------- | ---------- | -| Groth16 | 250,000 | 40,000 | TBD | -| STARKs | >1,000,000 | 40,000 | TBD | -| Kimchi-IPA | ?????? | 40,000 | TBD | -| Halo2-KZG | 350,000 | 40,000 | TBD | -| Binius. | ?????? | 40,000 | TBD | +| Proof system | Ethereum | Aligned - Fast mode | Aligned - Aggregation | +| ------------ | ---------- | ------------------- | --------------------- | +| Groth16 | 250,000 | 40,000 | TBD | +| STARKs | >1,000,000 | 40,000 | TBD | +| Kimchi-IPA | ?????? | 40,000 | TBD | +| Binius. | ?????? | 40,000 | TBD | ## Why are we building Aligned? In recent months, we have witnessed the development and enhancement of general proving virtual machines such as Risc0, Valida, Jolt, and SP1. These innovations allow users to write ordinary code in languages like Rust or C and generate proofs demonstrating the integrity of computations. This evolution is poised to transform application development, provided we have verification networks with high throughput and low cost. This is the core vision of Aligned and the reason we are building it: the future belongs to provable applications. -Currently, proof verification in Ethereum is expensive and throughput is limited to around 10 proofs per second. The cost depends on the proof system used, and the availability of precompiles. Groth16 costs around 250,000 gas, STARKs, over 1,000,000, and other proof systems are too expensive to be used in Ethereum. +Currently, proof verification in Ethereum is expensive and throughput is limited to around 10 proofs per second. The cost depends on the proof system used, and the availability of precompiles. Groth16 costs around 250,000 gas, STARKs, over 1,000,000, and other proof systems are too expensive to be used in Ethereum. Proof technology has been evolving over the last decade, with new arguments, fields, commitments and other tools appearing every day. It is hard to try new ideas if verification costs are high, and there is a considerable go-to-market time, as a consequence of development time of new, gas-optimized smart contracts, or the inclusion of new precompiles to make them affordable. -Aligned provides an alternative to reduce costs and increase throughput significantly. This is achieved by two different modes: **fast mode** and **aggregation mode**. +Aligned provides an alternative to reduce costs and increase throughput significantly. This is achieved by two different modes: **fast mode** and **aggregation mode**. -The fast mode works with a subset of Ethereum’s validators via restaking. Validators (also known as Operators) receive proofs, verify them using the verification code written in Rust or any other higher-level language, and then sign messages with BLS signatures. If a two-thirds (2/3) majority agrees, the results are posted in Ethereum. +The fast mode works with a subset of Ethereum’s validators via restaking. Validators (also known as Operators) receive proofs, verify them using the verification code written in Rust or any other higher-level language, and then sign messages with BLS signatures. If a two-thirds (2/3) majority agrees, the results are posted in Ethereum. Since Aligned’s operators only need to run the verification code on bare metal, we have several advantages compared to running it on top of the EVM: diff --git a/docs/1_introduction/2_zkquiz.md b/docs/1_introduction/2_zkquiz.md new file mode 100644 index 000000000..c7b287b79 --- /dev/null +++ b/docs/1_introduction/2_zkquiz.md @@ -0,0 +1,63 @@ +# ZK Quiz + +## Introduction + +This program leverages Aligned's ZK verification infrastructure to run a small quiz. The proof allows any party to check that the quiz was answered right or wrong. If answered correctly, the user receives an NFT. + +The process is as follows: + +1. The user runs ZKQuiz and answers the questions. +2. ZKQuiz generates a ZK Proof of correct answers. +3. The proof is posted on Aligned. +4. Upon verification, ZKQuiz mints an NFT via a Smart Contract. + +The NFT is only granted if the user's answers correctly. +Incorrect answers or tampering with the ZKQuiz code will result in proof generation failure or mismatched checksums, +preventing NFT minting. + +Next, we will see how to execute ZKQuiz to get your own ZKQuiz NFT! + +## Requirements + +1. [Rust](https://www.rust-lang.org/tools/install) +2. [Foundry](https://getfoundry.sh) + +## Usage + +### 1 - Create Keystore + +{% hint style="warning" %} +When creating a new wallet keystore and private key please use strong passwords for your own protection. +{% endhint %} + +You can use cast to create a local keystore. +If you already have one, you can skip this step. + +```bash +cast wallet new-mnemonic +``` + +Then you can import your created keystore using: + +```bash +cast wallet import --interactive +``` + +Then you need to get some funds to pay for gas and proof verification. +You can do this by using this [faucet](https://cloud.google.com/application/web3/faucet/ethereum/holesky) + +### 2 - Answer Quiz + +To answer quiz questions run: + +```bash +make answer_quiz KEYSTORE_PATH= +``` + +This will: + +1. Ask quiz questions +2. Generate ZK proof +3. Pay & submit proof to aligned for verification +4. Wait for proof to be verified in aligned +5. Claim NFT if proof is verified \ No newline at end of file diff --git a/docs/1_introduction/4_faq.md b/docs/1_introduction/4_faq.md index 920bb5926..fec8f4a10 100644 --- a/docs/1_introduction/4_faq.md +++ b/docs/1_introduction/4_faq.md @@ -100,7 +100,7 @@ Aligned provides recursive proof aggregation as part of its aggregation mode, a ### What proof systems do you support? -Aligned is designed to support any proof system. We [currently support](../2_architecture/0_supported_verifiers.md) Groth16 and Plonk (gnark), SP1, Risc0, and Halo 2 (IPA and KZG). +Aligned is designed to support any proof system. We [currently support](../2_architecture/0_supported_verifiers.md) Groth16 and Plonk (gnark), SP1 and Risc0. ### How easy is it to add new proof systems? diff --git a/docs/2_architecture/components/2_payment_service_contract.md b/docs/2_architecture/components/2_payment_service_contract.md index f03fcf5c4..0c8a60244 100644 --- a/docs/2_architecture/components/2_payment_service_contract.md +++ b/docs/2_architecture/components/2_payment_service_contract.md @@ -17,7 +17,7 @@ Once a batch is complete, the Batcher calls its smart contract with the collecte The smart contract deducts funds from senders' balances and creates a new Batch in the [Aligned Service Manager](./3_service_manager_contract.md), -including tokens for batch verification payment to the [Aggregator](./5_aggregator.md). +including funds for batch verification payment to the [Aggregator](./5_aggregator.md). Users can then withdraw extra funds deposited to the Batcher Payments smart contract, or leave them to fund future proofs. @@ -27,19 +27,7 @@ This enables the Batcher to be sure the User will have funds to pay for his proo This way, the Batcher can only use the User's funds to pay for the verification of the User's proofs. The Batcher Payment Service guarantees that the Batcher will not be able to spend the user funds for anything other than submitting the user's proofs to Aligned. -The flow is: - -- When the batcher calls the smart contract to create a new batch, - it gets the batch merkle tree leaves, with each leaf, signed by the user. -- The contract then rebuilds the merkle tree to check the - batch merkle root and verifies the user signatures. -- Each signature also contains a nonce that can only be used once per user, - to avoid the batcher being able to reuse the same signature. -- Only if the merkle root and the signatures are valid, the contract will - discount the corresponding funds from the user's balance and - create a new batch in the [Aligned Service Manager](./3_service_manager_contract.md). - -## Payment service architecture and flow +## Payment service architecture and flow ![Payment Service Flow Diagram](../../images/payment_service_diagram.png) @@ -60,21 +48,23 @@ to keep track of each User's funds separately. #### Create New Task ```solidity - function createNewTask( - bytes32 batchMerkleRoot, - string calldata batchDataPointer, - bytes32[] calldata leaves, // padded to the next power of 2 - SignatureData[] calldata signatures, // actual length (proof sumbitters == proofs submitted) - uint256 gasForAggregator, - uint256 gasPerProof - ) external onlyBatcher +function createNewTask( + bytes32 batchMerkleRoot, + string calldata batchDataPointer, + address[] calldata proofSubmitters, + uint256 feeForAggregator, + uint256 feePerProof, + uint256 respondToTaskFeeLimit +) external onlyBatcher whenNotPaused ``` -This function will be executed only by the Batcher when it has a batch to post to Aligned. +This function is called only by the Batcher when it has a batch ready to be submitted to Aligned. It contains all the information needed to post the batch -in [Aligned Service Manager](./3_service_manager_contract.md) (`batchMerkleRoot` -and `batchDataPointer`), plus an array containing which are the `proofSubmitters`, to discount `gasPerProof` from -these, and also the `gasForAggregator`, declaring how much will need to go pay for the response of the batch. +in the [Aligned Service Manager](./3_service_manager_contract.md) (`batchMerkleRoot` +and `batchDataPointer`), plus an array containing which are the `proofSubmitters`, to discount `feePerProof` from +these, and also the `feeForAggregator`, declaring how much will need to go pay for the response of the batch, as well +as the `respondToTaskFeeLimit`, a safeguard that sets the max quantity of Ethereum that the aggregator should spend in +case of a gas price spike. #### Unlock diff --git a/docs/3_guides/0_submitting_proofs.md b/docs/3_guides/0_submitting_proofs.md index e877304e3..effc76bc7 100644 --- a/docs/3_guides/0_submitting_proofs.md +++ b/docs/3_guides/0_submitting_proofs.md @@ -12,8 +12,6 @@ The following is the list of the verifiers currently supported by Aligned: - :white_check_mark: gnark - Plonk (with BN254 and BLS12-381) - :white_check_mark: SP1 [(v1.0.1)](https://github.com/succinctlabs/sp1/releases/tag/v1.0.1) - :white_check_mark: Risc0 [(v1.0.1)](https://github.com/risc0/risc0/releases/tag/v1.0.1) -- :white_check_mark: Halo2 - Plonk/KZG -- :white_check_mark: Halo2 - Plonk/IPA Learn more about future verifiers [here](../2_architecture/0_supported_verifiers.md). @@ -25,6 +23,10 @@ If you already have a keystore file, you can ignore this section and start sendi You need to have installed [Foundry](https://book.getfoundry.sh/getting-started/installation). +{% hint style="warning" %} +When creating a new wallet keystore and private key please use strong passwords for your own protection. +{% endhint %} + - If you are creating a new account, create a private key with: ```bash @@ -168,6 +170,16 @@ aligned submit \ --rpc_url https://ethereum-holesky-rpc.publicnode.com ``` +**NOTE**: As said above, Aligned currently supports Risc0 proofs from `risc0-zkvm` version `v1.0.1`. For generating proofs using `cargo risc-zero` please ensure you are using `v1.0.1` or your proof will not be verified. + +If you can't install `cargo-risczero` `v1.0.1`, you can manually modify your `cargo.toml` on the host project to point to `v1.0.1`: + +```toml +risc0-zkvm = { git = "https://github.com/risc0/risc0", tag = "v1.0.1", default-features = false, features = [ + "prove", +] } +``` + **Example** ```bash @@ -243,73 +255,3 @@ aligned submit \ --network holesky \ --rpc_url https://ethereum-holesky-rpc.publicnode.com ``` - -### Halo2 KZG and Halo2 IPA - -The Halo2PlonkKzg and Halo2PlonkIpa proofs need the proof file, the public input file and the verification key file. - -If you are using the Halo2PlonkKzg proving system, you need to specify the `--proving_system Halo2KZG` flag. - -```bash -rm -rf ./aligned_verification_data/ && -aligned submit \ - --proving_system Halo2KZG \ - --proof \ - --vk \ - --public_input \ - --batcher_url wss://batcher.alignedlayer.com \ - --keystore_path \ - --proof_generator_addr \ - --network holesky \ - --rpc_url https://ethereum-holesky-rpc.publicnode.com \ - --payment_service_addr 0x815aeCA64a974297942D2Bbf034ABEe22a38A003 \ -``` - -If you are using the Halo2PlonkIpa proving system, you need to specify the `--proving_system Halo2IPA` flag. - -```bash -rm -rf ./aligned_verification_data/ && -aligned submit \ - --proving_system Halo2IPA \ - --proof \ - --vk \ - --public_input \ - --batcher_url wss://batcher.alignedlayer.com \ - --keystore_path \ - --proof_generator_addr \ - --network holesky \ - --rpc_url https://ethereum-holesky-rpc.publicnode.com \ - --payment_service_addr 0x815aeCA64a974297942D2Bbf034ABEe22a38A003 -``` - -**Examples**: - -```bash -rm -rf ./aligned_verification_data/ && -aligned submit \ - --proving_system Halo2KZG \ - --proof ./scripts/test_files/halo2_kzg/proof.bin \ - --vk ./scripts/test_files/halo2_kzg/params.bin \ - --public_input ./scripts/test_files/halo2_kzg/pub_input.bin \ - --batcher_url wss://batcher.alignedlayer.com \ - --keystore_path ~/.aligned_keystore/keystore0 \ - --proof_generator_addr 0x66f9664f97F2b50F62D13eA064982f936dE76657 \ - --network holesky \ - --rpc_url https://ethereum-holesky-rpc.publicnode.com \ - --payment_service_addr 0x815aeCA64a974297942D2Bbf034ABEe22a38A003 -``` - -```bash -rm -rf ./aligned_verification_data/ && -aligned submit \ - --proving_system Halo2IPA \ - --proof ./scripts/test_files/halo2_ipa/proof.bin \ - --vk ./scripts/test_files/halo2_ipa/params.bin \ - --public_input ./scripts/test_files/halo2_ipa/pub_input.bin \ - --batcher_url wss://batcher.alignedlayer.com \ - --keystore_path ~/.aligned_keystore/keystore0 \ - --proof_generator_addr 0x66f9664f97F2b50F62D13eA064982f936dE76657 \ - --network holesky \ - --rpc_url https://ethereum-holesky-rpc.publicnode.com \ - --payment_service_addr 0x815aeCA64a974297942D2Bbf034ABEe22a38A003 -``` diff --git a/docs/3_guides/4_generating_proofs.md b/docs/3_guides/4_generating_proofs.md index f06ea301c..bf3593739 100644 --- a/docs/3_guides/4_generating_proofs.md +++ b/docs/3_guides/4_generating_proofs.md @@ -174,113 +174,6 @@ aligned submit \ For more instructions on how to submit proofs, check the [Submitting proofs guide](../3_guides/0_submitting_proofs.md). -## Halo2 - -### Dependencies - -This guide assumes that: - -- You are using PSE fork of the Halo2 [proof system](https://github.com/privacy-scaling-explorations/halo2). -- You have a strong understanding of Halo2 circuit development and are familiar with the Halo2 proof system. -- Aligned installed (instructions [here](../1_introduction/1_getting_started.md#quickstart)). - -### Import the Halo2 fork library - -Aligned supports verification of Halo2 proofs using the IPA and KZG backends. To verify Halo2 proofs on Aligned a description of your Halo2 circuits [constraint system](https://github.com/privacy-scaling-explorations/halo2/blob/main/halo2_backend/src/plonk/circuit.rs#L63) must be serialized and sent over the wire to Aligned in addition to the ciruits verification parameters, verification key, and public inputs. - -Aligned maintains its own fork of the PSE's Halo2 repository that provides helper methods to serialize and send Halo2 proofs to Aligned. - -```rust -halo2_backend = { git = "https://github.com/yetanotherco/yet-another-halo2-fork.git", branch = "feat/serde_constraint_system" } -halo2_proofs = { git = "https://github.com/yetanotherco/yet-another-halo2-fork.git", branch = "feat/serde_constraint_system" } -``` - -### How to generate a proof - -Once you have developed your circuit and generated its respective, prover key, verifier key, and public input. - -You can add `prove_and_serialize_kzg_circuit` or `prove_and_serialize_ipa_circuit` from Aligned's Halo2 fork to generate a proof for your cicuit and serialize the circuit and its public inputs to be sent to Aligned. - -```rust -fn main() { - - // your code here - pub struct YourCircuit (pub Fr); - - impl Circuit for YourCircuit { - type Config = YourCircuitConfig; - type FloorPlanner = YourCircuitPlanner; - - fn without_witnesses(&self) -> Self { - // ... // - } - - fn configure(meta: &mut ConstraintSystem) -> Self::Config { - YourCircuitConfig::configure(meta) - } - - fn synthesize( - &self, - config: Self::Config, - mut layouter: impl Layouter, - ) -> Result<(), ErrorFront> { - // ... // - } - } - - let circuit = YourCircuit(Fr::random(OsRng)); - let params = ParamsKZG::setup(4, OsRng); - let compress_selectors = true; - let vk = keygen_vk_custom(¶ms, &circuit, compress_selectors).expect("vk should not fail"); - let pk = keygen_pk(¶ms, vk.clone(), &circuit).expect("pk should not fail"); - let input: Vec> = vec![vec![circuit.0]]; - prove_and_serialize_kzg_circuit(¶ms, &pk, &vk, circuit.clone(), &vec![input.clone()]) - .unwrap(); -} -``` - -Then run the following command to generate the proof, parameters, and public inputs: - -```bash -cargo run --release -``` - -The files will be saved within a `proof_files/` directory containing: -- `proof.bin` -- `params.bin` -- `public_input.bin` - -### How to get the proof verified by Aligned - -After generating the proof, you can send the proof for the respective proof systems of Halo2 to the Aligned network by running one of the following commands: - -```bash -aligned submit \ - --proving_system Halo2KZG \ - --proof \ - --vk \ - --public_input \ - --conn wss://batcher.alignedlayer.com \ - --proof_generator_addr \ - --rpc https://ethereum-holesky-rpc.publicnode.com \ - --batcher_addr 0x815aeCA64a974297942D2Bbf034ABEe22a38A003 -``` - -```bash -aligned submit \ - --proving_system Halo2IPA \ - --proof \ - --vk \ - --public_input \ - --conn wss://batcher.alignedlayer.com \ - --proof_generator_addr \ - --network holesky \ - --rpc https://ethereum-holesky-rpc.publicnode.com \ - --batcher_addr 0x815aeCA64a974297942D2Bbf034ABEe22a38A003 -``` - -For more instructions on how to submit proofs, check the [Submitting proofs guide](../3_guides/0_submitting_proofs.md). - ## ZkRust `zkRust` is a CLI tool maintained by Aligned that aims to simplify the developing applications in Rust using zkVM's such as SP1 or Risc0. @@ -330,7 +223,7 @@ The user may also define a `input()` and `output()` functions in addition to `ma - Within the `main()` (guest) function the user may write information from the computation performed in the zkVM to an output buffer to be used after proof generation. - The `output()` defines code that allows the user to read the information written to that buffer of the and perform post-processing of that data. -The user may specify inputs into the VM (guest) code using `zk_rust_io::write()` as long on the type of rust object they are writing implements `Serializable`. +The user may specify inputs into the VM (guest) code using `zk_rust_io::write()` as long on the type of rust object they are writing implements `Serializable`. Within the `main()` function (guest) the user may read in the inputs by specifying `zk_rust_io::read()` and output data computed during the execution phase of the code within the VM (guest) program by specifying `zk_rust_io::commit()`. @@ -357,7 +250,7 @@ pub fn input() { zk_rust_io::write(&pattern); zk_rust_io::write(&target_string); } -```` +``` ### main.rs diff --git a/docs/3_guides/5_using_zkrust.md b/docs/3_guides/5_using_zkrust.md index 6fe42bd78..e5f9375bd 100644 --- a/docs/3_guides/5_using_zkrust.md +++ b/docs/3_guides/5_using_zkrust.md @@ -41,6 +41,10 @@ and running the installation script: ### 2. Generate a keystore: +{% hint style="warning" %} +When creating a new wallet keystore and private key please use strong passwords for your own protection. +{% endhint %} + You can use cast to create a local keystore. If you already have one, you can skip this step. diff --git a/docs/3_guides/6_setup_aligned.md b/docs/3_guides/6_setup_aligned.md index 6ca18d816..a7086b0d5 100644 --- a/docs/3_guides/6_setup_aligned.md +++ b/docs/3_guides/6_setup_aligned.md @@ -284,6 +284,10 @@ Changing operator keys: Operator keys can be changed if needed. +{% hint style="warning" %} +When creating a new wallet keystore and private key please use strong passwords for your own protection. +{% endhint %} + To create a keystore, run: ```bash @@ -478,35 +482,6 @@ make batcher_send_burst_groth16 -
-Halo2 - -Send an individual IPA proof: - -```bash -make batcher_send_halo2_ipa_task -``` - -Send a burst of five IPA proofs: - -```bash -make batcher_send_halo2_ipa_task_burst_5 -``` - -Send an individual KZG proof: - -```bash -make batcher_send_halo2_kzg_task -``` - -Send a burst of 5 KZG proofs: - -```bash -make batcher_send_halo2_kzg_task_burst_5 -``` - -
-
Send a specific proof: diff --git a/docs/about_aligned/FAQ.md b/docs/about_aligned/FAQ.md index 1a0d20963..7e02f539d 100644 --- a/docs/about_aligned/FAQ.md +++ b/docs/about_aligned/FAQ.md @@ -117,7 +117,7 @@ aggregation as one of its tools. ### What proof systems do you support? Aligned is designed to support any proof system. -Currently supported ones are Groth 16 and Plonk (gnark), SP1, Risc0, Halo 2 (IPA and KZG) +Currently supported ones are Groth 16 and Plonk (gnark), SP1 and Risc0. ### How hard is it to add new proof systems? diff --git a/examples/zkquiz/Makefile b/examples/zkquiz/Makefile index 24fc09157..569efe3da 100644 --- a/examples/zkquiz/Makefile +++ b/examples/zkquiz/Makefile @@ -1,3 +1,5 @@ +SHELL := /bin/bash + deploy_verifier: @. ./contracts/.env && . ./contracts/deploy.sh @@ -10,3 +12,11 @@ answer_quiz: --keystore-path $(KEYSTORE_PATH) \ --rpc-url $(RPC_URL) \ --verifier-contract-address $(CONTRACT_ADDRESS) + +answer_quiz_local: + @cd quiz/script && cargo run -r -- \ + --keystore-path ../../../../config-files/devnet/keys/operator-3.ecdsa.key.json \ + --rpc-url http://localhost:8545 \ + --batcher-url ws://localhost:8080 \ + --network devnet \ + --verifier-contract-address $(CONTRACT_ADDRESS) diff --git a/examples/zkquiz/README.md b/examples/zkquiz/README.md index 1b32c390e..14dc790c1 100644 --- a/examples/zkquiz/README.md +++ b/examples/zkquiz/README.md @@ -52,3 +52,25 @@ This will: 3. Pay & submit proof to aligned for verification 4. Wait for proof to be verified in aligned 5. Claim NFT if proof is verified + +## Testing locally + +If you want to test the zk quiz on a local network follow these steps: + +1. Setup Aligned locally following [this guide](../../docs/3_guides/6_setup_aligned.md) + +3. Move into the zkquiz example: + ``` + cd examples/zkquiz + ``` + +4. Deploy the ZKQuiz verifier contract, and locate the `CONTRACT_ADDRESS` from its output: + ``` + make deploy_verifier_devnet + ``` + + +5. Run the quiz: + ``` + CONTRACT_ADDRESS= make answer_quiz_local + ``` diff --git a/examples/zkquiz/contracts/.devnet.env b/examples/zkquiz/contracts/.devnet.env new file mode 100644 index 000000000..9b51f9caf --- /dev/null +++ b/examples/zkquiz/contracts/.devnet.env @@ -0,0 +1,4 @@ +RPC_URL=http://localhost:8545 +PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 # a rich anvil account +ALIGNED_SERVICE_MANAGER_ADDRESS=0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8 +BATCHER_PAYMENT_SERVICE_ADDRESS=0x7969c5eD335650692Bc04293B07F5BF2e7A673C0 diff --git a/examples/zkquiz/quiz/script/src/main.rs b/examples/zkquiz/quiz/script/src/main.rs index 07e565f53..69d0092fb 100644 --- a/examples/zkquiz/quiz/script/src/main.rs +++ b/examples/zkquiz/quiz/script/src/main.rs @@ -1,12 +1,10 @@ #![feature(slice_flatten)] - use std::io; -use std::sync::Arc; use aligned_sdk::core::types::{ AlignedVerificationData, Network, PriceEstimate, ProvingSystemId, VerificationData, }; -use aligned_sdk::sdk::{estimate_fee, get_payment_service_address}; +use aligned_sdk::sdk::{deposit_to_aligned, estimate_fee}; use aligned_sdk::sdk::{get_next_nonce, submit_and_wait_verification}; use clap::Parser; use dialoguer::Confirm; @@ -18,11 +16,8 @@ use sp1_sdk::{ProverClient, SP1Stdin}; abigen!(VerifierContract, "VerifierContract.json",); -const BATCHER_URL: &str = "wss://batcher.alignedlayer.com"; const ELF: &[u8] = include_bytes!("../../program/elf/riscv32im-succinct-zkvm-elf"); -const NETWORK: Network = Network::Holesky; - #[derive(Parser, Debug)] #[command(version, about, long_about = None)] struct Args { @@ -34,6 +29,10 @@ struct Args { default_value = "https://ethereum-holesky-rpc.publicnode.com" )] rpc_url: String, + #[arg(short, long, default_value = "wss://batcher.alignedlayer.com")] + batcher_url: String, + #[arg(short, long, default_value = "holesky")] + network: Network, #[arg(short, long)] verifier_contract_address: H160, } @@ -48,20 +47,27 @@ async fn main() { let keystore_password = rpassword::prompt_password("Enter keystore password: ") .expect("Failed to read keystore password"); - let wallet = LocalWallet::decrypt_keystore(args.keystore_path, &keystore_password) - .expect("Failed to decrypt keystore") - .with_chain_id(17000u64); - let provider = Provider::::try_from(rpc_url.as_str()).expect("Failed to connect to provider"); - let signer = Arc::new(SignerMiddleware::new(provider.clone(), wallet.clone())); + let chain_id = provider + .get_chainid() + .await + .expect("Failed to get chain_id"); + + let wallet = LocalWallet::decrypt_keystore(args.keystore_path, &keystore_password) + .expect("Failed to decrypt keystore") + .with_chain_id(chain_id.as_u64()); + + let signer = SignerMiddleware::new(provider.clone(), wallet.clone()); if Confirm::with_theme(&dialoguer::theme::ColorfulTheme::default()) .with_prompt("Do you want to deposit 0.004eth in Aligned ?\nIf you already deposited Ethereum to Aligned before, this is not needed") .interact() .expect("Failed to read user input") { - deposit_to_batcher(wallet.address(), signer.clone()).await.expect("Failed to pay for proof submission"); + + deposit_to_aligned(U256::from(4000000000000000u128), signer.clone(), args.network).await + .expect("Failed to pay for proof submission"); } // Generate proof. @@ -114,7 +120,7 @@ async fn main() { pub_input: None, }; - let max_fee = estimate_fee(&rpc_url, PriceEstimate::Default) + let max_fee = estimate_fee(&rpc_url, PriceEstimate::Instant) .await .expect("failed to fetch gas price from the blockchain"); @@ -126,14 +132,16 @@ async fn main() { .expect("Failed to read user input") { return; } - let nonce = get_next_nonce(&rpc_url, wallet.address(), NETWORK) + let nonce = get_next_nonce(&rpc_url, wallet.address(), args.network) .await .expect("Failed to get next nonce"); + println!("Submitting your proof..."); + let aligned_verification_data = submit_and_wait_verification( - BATCHER_URL, + &args.batcher_url, &rpc_url, - NETWORK, + args.network, &verification_data, max_fee, wallet.clone(), @@ -143,9 +151,10 @@ async fn main() { .unwrap(); println!( - "Proof submitted and verified successfully on batch {}, claiming prize...", + "Proof submitted and verified successfully on batch {}", hex::encode(aligned_verification_data.batch_merkle_root) ); + println!("Claiming NFT prize..."); claim_nft_with_verified_proof( &aligned_verification_data, @@ -193,43 +202,12 @@ fn read_answer() -> char { } } -async fn deposit_to_batcher( - from: Address, - signer: Arc, LocalWallet>>, -) -> anyhow::Result<()> { - let addr = get_payment_service_address(NETWORK); - - let tx = TransactionRequest::new() - .from(from) - .to(addr) - .value(4000000000000000u128); - - match signer - .send_transaction(tx, None) - .await - .map_err(|e| anyhow::anyhow!("Failed to send tx {}", e))? - .await - .map_err(|e| anyhow::anyhow!("Failed to submit tx {}", e))? - { - Some(receipt) => { - println!( - "Payment sent. Transaction hash: {:x}", - receipt.transaction_hash - ); - Ok(()) - } - None => { - anyhow::bail!("Payment failed"); - } - } -} - async fn claim_nft_with_verified_proof( aligned_verification_data: &AlignedVerificationData, - signer: Arc, LocalWallet>>, + signer: SignerMiddleware, LocalWallet>, verifier_contract_addr: &Address, ) -> anyhow::Result<()> { - let verifier_contract = VerifierContract::new(*verifier_contract_addr, signer); + let verifier_contract = VerifierContract::new(*verifier_contract_addr, signer.into()); let index_in_batch = U256::from(aligned_verification_data.index_in_batch); let merkle_path = Bytes::from( diff --git a/explorer/lib/explorer/contract_managers/aligned_layer_service_manager.ex b/explorer/lib/explorer/contract_managers/aligned_layer_service_manager.ex index 05f091aad..fb31b19d5 100644 --- a/explorer/lib/explorer/contract_managers/aligned_layer_service_manager.ex +++ b/explorer/lib/explorer/contract_managers/aligned_layer_service_manager.ex @@ -26,7 +26,7 @@ defmodule AlignedLayerServiceManager do :error -> raise( - "Config file not read successfully, did you run make create-env? If you did,\n make sure Alignedlayer config file is correctly stored" + "Config file not read successfully, did you run make explorer_create_env? If you did,\n make sure AlignedLayer config file is correctly stored" ) end diff --git a/explorer/lib/explorer/contract_managers/avs_directory_manager.ex b/explorer/lib/explorer/contract_managers/avs_directory_manager.ex index 36297c5cd..a511b243e 100644 --- a/explorer/lib/explorer/contract_managers/avs_directory_manager.ex +++ b/explorer/lib/explorer/contract_managers/avs_directory_manager.ex @@ -14,7 +14,7 @@ defmodule AVSDirectoryManager do :error -> raise( - "Config file not read successfully, did you run make create-env? If you did,\n make sure Eigenlayer config file is correctly stored" + "Config file not read successfully, did you run make explorer_create_env? If you did,\n make sure Eigenlayer config file is correctly stored" ) end diff --git a/explorer/lib/explorer/contract_managers/batcher_payment_service_manager.ex b/explorer/lib/explorer/contract_managers/batcher_payment_service_manager.ex index 883d08694..9dcfe0466 100644 --- a/explorer/lib/explorer/contract_managers/batcher_payment_service_manager.ex +++ b/explorer/lib/explorer/contract_managers/batcher_payment_service_manager.ex @@ -25,7 +25,7 @@ defmodule BatcherPaymentServiceManager do :error -> raise( - "Config file not read successfully, did you run make create-env? If you did,\n make sure Alignedlayer config file is correctly stored" + "Config file not read successfully, did you run make explorer_create_env? If you did,\n make sure AlignedLayer config file is correctly stored" ) end diff --git a/explorer/lib/explorer/contract_managers/delegation_manager.ex b/explorer/lib/explorer/contract_managers/delegation_manager.ex index de2c7f8d9..696f9b413 100644 --- a/explorer/lib/explorer/contract_managers/delegation_manager.ex +++ b/explorer/lib/explorer/contract_managers/delegation_manager.ex @@ -21,7 +21,7 @@ defmodule DelegationManager do :error -> raise( - "Config file not read successfully, did you run make create-env? If you did,\n make sure Eigenlayer config file is correctly stored" + "Config file not read successfully, did you run make explorer_create_env? If you did,\n make sure Eigenlayer config file is correctly stored" ) end diff --git a/explorer/lib/explorer/contract_managers/registry_coordinator_manager.ex b/explorer/lib/explorer/contract_managers/registry_coordinator_manager.ex index 3ce5c6aa0..10f371882 100644 --- a/explorer/lib/explorer/contract_managers/registry_coordinator_manager.ex +++ b/explorer/lib/explorer/contract_managers/registry_coordinator_manager.ex @@ -17,7 +17,7 @@ defmodule RegistryCoordinatorManager do :error -> raise( - "Config file not read successfully, did you run make create-env? If you did,\n make sure Eigenlayer config file is correctly stored" + "Config file not read successfully, did you run make explorer_create_env? If you did,\n make sure Eigenlayer config file is correctly stored" ) end diff --git a/explorer/lib/explorer/contract_managers/stake_registry_manager.ex b/explorer/lib/explorer/contract_managers/stake_registry_manager.ex index e06927a3a..81bd97595 100644 --- a/explorer/lib/explorer/contract_managers/stake_registry_manager.ex +++ b/explorer/lib/explorer/contract_managers/stake_registry_manager.ex @@ -17,7 +17,7 @@ defmodule StakeRegistryManager do :error -> raise( - "Config file not read successfully, did you run make create-env? If you did,\n make sure Eigenlayer config file is correctly stored" + "Config file not read successfully, did you run make explorer_create_env? If you did,\n make sure Eigenlayer config file is correctly stored" ) end diff --git a/explorer/mix.lock b/explorer/mix.lock index 17f684b6a..336bebe7e 100644 --- a/explorer/mix.lock +++ b/explorer/mix.lock @@ -23,7 +23,7 @@ "floki": {:hex, :floki, "0.36.2", "a7da0193538c93f937714a6704369711998a51a6164a222d710ebd54020aa7a3", [:mix], [], "hexpm", "a8766c0bc92f074e5cb36c4f9961982eda84c5d2b8e979ca67f5c268ec8ed580"}, "gettext": {:hex, :gettext, "0.24.0", "6f4d90ac5f3111673cbefc4ebee96fe5f37a114861ab8c7b7d5b30a1108ce6d8", [:mix], [{:expo, "~> 0.5.1", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "bdf75cdfcbe9e4622dd18e034b227d77dd17f0f133853a1c73b97b3d6c770e8b"}, "hackney": {:hex, :hackney, "1.20.1", "8d97aec62ddddd757d128bfd1df6c5861093419f8f7a4223823537bad5d064e2", [:rebar3], [{:certifi, "~> 2.12.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~> 6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~> 1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~> 1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.4.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~> 1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "fe9094e5f1a2a2c0a7d10918fee36bfec0ec2a979994cff8cfe8058cd9af38e3"}, - "heroicons": {:git, "https://github.com/tailwindlabs/heroicons.git", "88ab3a0d790e6a47404cba02800a6b25d2afae50", [tag: "v2.1.1", sparse: "optimized"]}, + "heroicons": {:git, "https://github.com/tailwindlabs/heroicons.git", "88ab3a0d790e6a47404cba02800a6b25d2afae50", [tag: "v2.1.1", sparse: "optimized", depth: 1]}, "hpax": {:hex, :hpax, "0.2.0", "5a58219adcb75977b2edce5eb22051de9362f08236220c9e859a47111c194ff5", [:mix], [], "hexpm", "bea06558cdae85bed075e6c036993d43cd54d447f76d8190a8db0dc5893fa2f1"}, "httpoison": {:hex, :httpoison, "2.2.1", "87b7ed6d95db0389f7df02779644171d7319d319178f6680438167d7b69b1f3d", [:mix], [{:hackney, "~> 1.17", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm", "51364e6d2f429d80e14fe4b5f8e39719cacd03eb3f9a9286e61e216feac2d2df"}, "idna": {:hex, :idna, "6.1.1", "8a63070e9f7d0c62eb9d9fcb360a7de382448200fbbd1b106cc96d3d8099df8d", [:rebar3], [{:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "92376eb7894412ed19ac475e4a86f7b413c1b9fbb5bd16dccd57934157944cea"}, diff --git a/grafana/provisioning/dashboards/aligned/aggregator.json b/grafana/provisioning/dashboards/aligned/aggregator.json index d94b8a5ca..503b1c073 100644 --- a/grafana/provisioning/dashboards/aligned/aggregator.json +++ b/grafana/provisioning/dashboards/aligned/aggregator.json @@ -22,6 +22,32 @@ "links": [], "liveNow": false, "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 11, + "panels": [], + "title": "Batcher", + "type": "row" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 1 + }, + "id": 10, + "panels": [], + "title": "Aggregator", + "type": "row" + }, { "datasource": { "type": "prometheus", @@ -37,8 +63,20 @@ "mode": "absolute", "steps": [ { - "color": "green", + "color": "dark-red", "value": null + }, + { + "color": "green", + "value": 0 + }, + { + "color": "yellow", + "value": 1 + }, + { + "color": "dark-red", + "value": 2 } ] } @@ -47,11 +85,11 @@ }, "gridPos": { "h": 7, - "w": 5, + "w": 10, "x": 0, - "y": 0 + "y": 2 }, - "id": 2, + "id": 9, "options": { "colorMode": "value", "graphMode": "none", @@ -64,9 +102,7 @@ "fields": "", "values": false }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true + "textMode": "auto" }, "pluginVersion": "10.1.10", "targets": [ @@ -78,69 +114,17 @@ "disableTextWrap": false, "editorMode": "builder", "exemplar": false, - "expr": "floor(increase(aligned_aggregated_responses{bot=\"aggregator\"}[10y]))", - "format": "table", + "expr": "floor(increase(aligned_aggregator_received_tasks{job=\"aligned-aggregator\"}[$__range]))", "fullMetaSearch": false, + "hide": true, "includeNullMetadata": true, "instant": false, "interval": "", - "legendFormat": "__auto", + "legendFormat": "{{label_name}}", "range": true, "refId": "A", "useBackend": false - } - ], - "title": "Total Responses", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 5, - "x": 5, - "y": 0 - }, - "id": 5, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "10.1.10", - "targets": [ { "datasource": { "type": "prometheus", @@ -148,18 +132,50 @@ }, "disableTextWrap": false, "editorMode": "builder", - "exemplar": false, "expr": "floor(increase(aligned_aggregated_responses{bot=\"aggregator\"}[$__range]))", "fullMetaSearch": false, + "hide": true, "includeNullMetadata": true, "instant": false, "legendFormat": "__auto", "range": true, - "refId": "A", + "refId": "B", "useBackend": false + }, + { + "datasource": { + "name": "Expression", + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "$A - $B", + "hide": false, + "reducer": "last", + "refId": "C", + "type": "math" + } + ], + "title": "Tasks Not Verified", + "transformations": [ + { + "id": "filterByValue", + "options": { + "filters": [ + { + "config": { + "id": "lower", + "options": { + "value": 0 + } + }, + "fieldName": "C {bot=\"aggregator\", instance=\"host.docker.internal:9091\", job=\"aligned-aggregator\"}" + } + ], + "match": "any", + "type": "exclude" + } } ], - "title": "New Responses", "type": "stat" }, { @@ -221,10 +237,10 @@ "overrides": [] }, "gridPos": { - "h": 9, - "w": 13, + "h": 7, + "w": 10, "x": 10, - "y": 0 + "y": 2 }, "id": 1, "options": { @@ -258,7 +274,7 @@ "useBackend": false } ], - "title": "Aggregator", + "title": "Verified Tasks", "type": "timeseries" }, { @@ -266,49 +282,45 @@ "type": "prometheus", "uid": "prometheus" }, + "description": "", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], - "max": 30, - "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null - }, - { - "color": "red", - "value": 25 } ] - }, - "unit": "none" + } }, "overrides": [] }, "gridPos": { - "h": 9, + "h": 7, "w": 5, "x": 0, - "y": 7 + "y": 9 }, - "id": 3, + "id": 8, "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ - "mean" + "lastNotNull" ], "fields": "", "values": false }, - "showThresholdLabels": true, - "showThresholdMarkers": true + "textMode": "auto" }, "pluginVersion": "10.1.10", "targets": [ @@ -318,8 +330,8 @@ "uid": "prometheus" }, "disableTextWrap": false, - "editorMode": "code", - "expr": "rate(aligned_aggregated_responses{bot=\"aggregator\"}[1m]) * 60", + "editorMode": "builder", + "expr": "floor(increase(aligned_aggregator_received_tasks{bot=\"aggregator\"}[10y]))", "fullMetaSearch": false, "includeNullMetadata": true, "instant": false, @@ -329,43 +341,48 @@ "useBackend": false } ], - "title": "Responses Rate per Min", - "type": "gauge" + "title": "Total Tasks Received", + "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "prometheus" }, + "description": "", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], - "max": 10, - "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null + }, + { + "color": "red", + "value": 80 } ] - }, - "unit": "none" + } }, "overrides": [] }, "gridPos": { - "h": 9, + "h": 7, "w": 5, "x": 5, - "y": 7 + "y": 9 }, - "id": 6, + "id": 7, "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -374,8 +391,7 @@ "fields": "", "values": false }, - "showThresholdLabels": true, - "showThresholdMarkers": true + "textMode": "auto" }, "pluginVersion": "10.1.10", "targets": [ @@ -384,16 +400,20 @@ "type": "prometheus", "uid": "prometheus" }, - "editorMode": "code", - "expr": "rate(aligned_aggregated_responses{bot=\"aggregator\"}[1m])", + "disableTextWrap": false, + "editorMode": "builder", + "expr": "floor(increase(aligned_aggregator_received_tasks{bot=\"aggregator\"}[$__range]))", + "fullMetaSearch": false, + "includeNullMetadata": true, "instant": false, "legendFormat": "__auto", "range": true, - "refId": "A" + "refId": "A", + "useBackend": false } ], - "title": "Responses Rate per Sec", - "type": "gauge" + "title": "Tasks Received", + "type": "stat" }, { "datasource": { @@ -403,38 +423,7 @@ "fieldConfig": { "defaults": { "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } + "mode": "thresholds" }, "mappings": [], "thresholds": { @@ -443,10 +432,6 @@ { "color": "green", "value": null - }, - { - "color": "red", - "value": 80 } ] } @@ -455,24 +440,99 @@ }, "gridPos": { "h": 7, - "w": 13, - "x": 10, - "y": 9 + "w": 5, + "x": 0, + "y": 16 }, - "id": 4, + "id": 2, "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false }, - "tooltip": { - "maxHeight": 600, - "mode": "single", - "sort": "none" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "10.1.10", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "floor(increase(aligned_aggregated_responses{bot=\"aggregator\"}[10y]))", + "format": "table", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "interval": "", + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false } + ], + "title": "Total Tasks Verified", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] }, + "gridPos": { + "h": 7, + "w": 5, + "x": 5, + "y": 16 + }, + "id": 5, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "10.1.10", "targets": [ { "datasource": { @@ -480,8 +540,9 @@ "uid": "prometheus" }, "disableTextWrap": false, - "editorMode": "code", - "expr": "rate(aligned_aggregated_responses{bot=\"aggregator\"}[1m]) * 60", + "editorMode": "builder", + "exemplar": false, + "expr": "floor(increase(aligned_aggregated_responses{bot=\"aggregator\"}[$__range]))", "fullMetaSearch": false, "includeNullMetadata": true, "instant": false, @@ -491,11 +552,11 @@ "useBackend": false } ], - "title": "Responses Rate per Min", - "type": "timeseries" + "title": "Tasks Verified", + "type": "stat" } ], - "refresh": "auto", + "refresh": "5s", "schemaVersion": 38, "style": "dark", "tags": [], @@ -510,6 +571,6 @@ "timezone": "browser", "title": "Aggregator Data", "uid": "aggregator", - "version": 3, + "version": 19, "weekStart": "" -} \ No newline at end of file +} diff --git a/metrics/metrics.go b/metrics/metrics.go index 819f6d4a8..11c0829c4 100644 --- a/metrics/metrics.go +++ b/metrics/metrics.go @@ -12,10 +12,11 @@ import ( ) type Metrics struct { - ipPortAddress string - logger logging.Logger - numAggregatedResponses prometheus.Counter - numOperatorTaskResponses prometheus.Counter + ipPortAddress string + logger logging.Logger + numAggregatedResponses prometheus.Counter + numAggregatorReceivedTasks prometheus.Counter + numOperatorTaskResponses prometheus.Counter } const alignedNamespace = "aligned" @@ -34,6 +35,11 @@ func NewMetrics(ipPortAddress string, reg prometheus.Registerer, logger logging. Name: "operator_responses", Help: "Number of proof verified by the operator and sent to the Aligned Service Manager", }), + numAggregatorReceivedTasks: promauto.With(reg).NewCounter(prometheus.CounterOpts{ + Namespace: alignedNamespace, + Name: "aggregator_received_tasks", + Help: "Number of tasks received by the Service Manager", + }), } } @@ -57,6 +63,10 @@ func (m *Metrics) Start(ctx context.Context, reg prometheus.Gatherer) <-chan err return errC } +func (m *Metrics) IncAggregatorReceivedTasks() { + m.numAggregatorReceivedTasks.Inc() +} + func (m *Metrics) IncAggregatedResponses() { m.numAggregatedResponses.Inc() } diff --git a/operator/halo2ipa/.gitignore b/operator/halo2ipa/.gitignore deleted file mode 100644 index 9599ee3f1..000000000 --- a/operator/halo2ipa/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -lib/libhalo2ipa_verifier.so -lib/libhalo2ipa_verifier.a -lib/libhalo2ipa_verifier.dylib diff --git a/operator/halo2ipa/halo2ipa.go b/operator/halo2ipa/halo2ipa.go deleted file mode 100644 index 6df49b051..000000000 --- a/operator/halo2ipa/halo2ipa.go +++ /dev/null @@ -1,35 +0,0 @@ -package halo2ipa - -/* -#cgo linux LDFLAGS: ${SRCDIR}/lib/libhalo2ipa_verifier.a -ldl -lrt -lm -lssl -lcrypto -Wl,--allow-multiple-definition -#cgo darwin LDFLAGS: -L./lib -lhalo2ipa_verifier - -#include "lib/halo2ipa.h" -*/ -import "C" -import "unsafe" - -func VerifyHalo2IpaProof( - proofBuffer []byte, - paramsBuffer []byte, - publicInputBuffer []byte, -) bool { - /* - For Halo2 the `paramsBuffer` contains the serialized cs, vk, and params with there respective sizes serialized as u32 values (4 bytes) => 3 * 4 bytes = 12 followed by the concatenated variable length buffers: - We therefore require that the `paramsBuffer` is greater than 12 bytes and treat the case that buffer lengths and buffers themselves are 0 size as false. - [ cs_len | vk_len | vk_params_len | cs_bytes | vk_bytes | vk_params_bytes ]. - */ - if len(proofBuffer) == 0 || len(paramsBuffer) <= 12 || len(publicInputBuffer) == 0 { - return false - } - - proofPtr := (*C.uchar)(unsafe.Pointer(&proofBuffer[0])) - paramsPtr := (*C.uchar)(unsafe.Pointer(¶msBuffer[0])) - publicInputPtr := (*C.uchar)(unsafe.Pointer(&publicInputBuffer[0])) - - return (bool)(C.verify_halo2_ipa_proof_ffi( - proofPtr, (C.uint32_t)(len(proofBuffer)), - paramsPtr, (C.uint32_t)(len(paramsBuffer)), - publicInputPtr, (C.uint32_t)(len(publicInputBuffer)), - )) -} diff --git a/operator/halo2ipa/halo2ipa_test.go b/operator/halo2ipa/halo2ipa_test.go deleted file mode 100644 index 68044505a..000000000 --- a/operator/halo2ipa/halo2ipa_test.go +++ /dev/null @@ -1,39 +0,0 @@ -package halo2ipa_test - -import ( - "os" - "testing" - - "github.com/yetanotherco/aligned_layer/operator/halo2ipa" -) - -const ProofFilePath = "../../scripts/test_files/halo2_ipa/proof.bin" - -const PublicInputPath = "../../scripts/test_files/halo2_ipa/pub_input.bin" - -const ParamsFilePath = "../../scripts/test_files/halo2_ipa/params.bin" - -func TestHalo2IpaProofVerifies(t *testing.T) { - proofBytes, err := os.ReadFile(ProofFilePath) - if err != nil { - t.Errorf("could not open proof file: %s", err) - } - - paramsBytes, err := os.ReadFile(ParamsFilePath) - if err != nil { - t.Errorf("could not open params file: %s", err) - } - - publicInputBytes, err := os.ReadFile(PublicInputPath) - if err != nil { - t.Errorf("could not open public input file: %s", err) - } - - if !halo2ipa.VerifyHalo2IpaProof( - ([]byte)(proofBytes), - ([]byte)(paramsBytes), - ([]byte)(publicInputBytes), - ) { - t.Errorf("proof did not verify") - } -} diff --git a/operator/halo2ipa/lib/Cargo.lock b/operator/halo2ipa/lib/Cargo.lock deleted file mode 100644 index 85e2113aa..000000000 --- a/operator/halo2ipa/lib/Cargo.lock +++ /dev/null @@ -1,1104 +0,0 @@ -# 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 = "arrayref" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" - -[[package]] -name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "assert_matches" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" - -[[package]] -name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[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 = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[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 = "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 = "blake2b_simd" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "block-padding", - "generic-array", -] - -[[package]] -name = "block-padding" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "cc" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504bdec147f2cc13c8b57ed9401fd8a147cc66b67ad5cb241394244f2c947549" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "constant_time_eq" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" - -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - -[[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-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - -[[package]] -name = "dhat" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cd11d84628e233de0ce467de10b8633f4ddaecafadefc86e13b84b8739b827" -dependencies = [ - "backtrace", - "lazy_static", - "mintex", - "parking_lot", - "rustc-hash", - "serde", - "serde_json", - "thousands", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "either" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" - -[[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 = "fastrand" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "bitvec", - "rand_core", - "subtle", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" - -[[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 = "gumdrop" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc700f989d2f6f0248546222d9b4258f5b02a171a431f8285a81c08142629e3" -dependencies = [ - "gumdrop_derive", -] - -[[package]] -name = "gumdrop_derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "729f9bd3449d77e7831a18abfb7ba2f99ee813dfd15b8c2167c9a54ba20aa99d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "halo2_backend" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=22b5d224f3cbeba917e48ba10c618a165e43cd23#22b5d224f3cbeba917e48ba10c618a165e43cd23" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "halo2_middleware", - "halo2curves", - "rand_chacha", - "rand_core", - "rayon", - "serde", - "sha3", - "tracing", -] - -[[package]] -name = "halo2_frontend" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=22b5d224f3cbeba917e48ba10c618a165e43cd23#22b5d224f3cbeba917e48ba10c618a165e43cd23" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "halo2_middleware", - "halo2curves", - "tracing", -] - -[[package]] -name = "halo2_middleware" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=22b5d224f3cbeba917e48ba10c618a165e43cd23#22b5d224f3cbeba917e48ba10c618a165e43cd23" -dependencies = [ - "ff", - "halo2curves", - "rayon", - "serde", -] - -[[package]] -name = "halo2_proofs" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=22b5d224f3cbeba917e48ba10c618a165e43cd23#22b5d224f3cbeba917e48ba10c618a165e43cd23" -dependencies = [ - "bincode", - "group", - "halo2_backend", - "halo2_frontend", - "halo2_middleware", - "halo2curves", - "log", - "rand_core", - "serde", -] - -[[package]] -name = "halo2curves" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db81d01d0bbfec9f624d7590fc6929ee2537a64ec1e080d8f8c9e2d2da291405" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "hex", - "lazy_static", - "num-bigint", - "num-traits", - "pairing", - "pasta_curves", - "paste", - "rand", - "rand_core", - "rayon", - "serde", - "serde_arrays", - "static_assertions", - "subtle", -] - -[[package]] -name = "halo2ipa-verifier-ffi" -version = "0.1.0" -dependencies = [ - "assert_matches", - "bincode", - "dhat", - "ff", - "group", - "gumdrop", - "halo2_backend", - "halo2_proofs", - "halo2curves", - "log", - "proptest", - "rand_chacha", - "rand_core", - "rayon", - "serde_json", - "tracing", -] - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin", -] - -[[package]] -name = "libc" -version = "0.2.155" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" - -[[package]] -name = "libm" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" - -[[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", -] - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "miniz_oxide" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" -dependencies = [ - "adler", -] - -[[package]] -name = "mintex" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bec4598fddb13cc7b528819e697852653252b760f1228b7642679bf2ff2cd07" - -[[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", -] - -[[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-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "object" -version = "0.36.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - -[[package]] -name = "pairing" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" -dependencies = [ - "group", -] - -[[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", -] - -[[package]] -name = "pasta_curves" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "hex", - "lazy_static", - "rand", - "serde", - "static_assertions", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pin-project-lite" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" - -[[package]] -name = "ppv-lite86" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" -dependencies = [ - "zerocopy", -] - -[[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 = "proptest" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags", - "lazy_static", - "num-traits", - "rand", - "rand_chacha", - "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", - "unarray", -] - -[[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 = "redox_syscall" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" -dependencies = [ - "bitflags", -] - -[[package]] -name = "regex-syntax" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" - -[[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 = "rustix" -version = "0.38.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", -] - -[[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 = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "serde" -version = "1.0.205" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33aedb1a7135da52b7c21791455563facbbcc43d0f0f66165b42c21b3dfb150" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_arrays" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38636132857f68ec3d5f3eb121166d2af33cb55174c4d5ff645db6165cbef0fd" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.205" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692d6f5ac90220161d6774db30c662202721e64aed9058d2c394f451261420c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", -] - -[[package]] -name = "serde_json" -version = "1.0.122" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "sha3" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" -dependencies = [ - "block-buffer", - "digest", - "keccak", - "opaque-debug", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[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.72" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "thousands" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "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.72", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "wait-timeout" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" -dependencies = [ - "libc", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "byteorder", - "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.72", -] diff --git a/operator/halo2ipa/lib/Cargo.toml b/operator/halo2ipa/lib/Cargo.toml deleted file mode 100644 index 9df223624..000000000 --- a/operator/halo2ipa/lib/Cargo.toml +++ /dev/null @@ -1,27 +0,0 @@ -[package] -name = "halo2ipa-verifier-ffi" -version = "0.1.0" -edition = "2021" - -[dependencies] -bincode = "1.3.3" -halo2curves = { version = "0.6.0", default-features = false } -rand_core = { version = "0.6", default-features = false, features = ["getrandom"] } -halo2_backend = { git = "https://github.com/yetanotherco/yet-another-halo2-fork.git", rev = "22b5d224f3cbeba917e48ba10c618a165e43cd23" } -halo2_proofs = { git = "https://github.com/yetanotherco/yet-another-halo2-fork.git", rev = "22b5d224f3cbeba917e48ba10c618a165e43cd23" } -ff = "0.13" -log = "0.4.21" - -[dev-dependencies] -group = "0.13" -tracing = "0.1" -rand_chacha = "0.3" -rayon = "1.8" -assert_matches = "1.5" -gumdrop = "0.8" -proptest = "1" -dhat = "0.3.2" -serde_json = "1" - -[lib] -crate-type = ["cdylib", "staticlib", "lib"] diff --git a/operator/halo2ipa/lib/halo2ipa.h b/operator/halo2ipa/lib/halo2ipa.h deleted file mode 100644 index c0325c59b..000000000 --- a/operator/halo2ipa/lib/halo2ipa.h +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include - -bool verify_halo2_ipa_proof_ffi(unsigned char *proof_bytes, uint32_t proof_len, - unsigned char *params_bytes, - uint32_t params_len, - unsigned char *public_input_bytes, - uint32_t public_input_len); diff --git a/operator/halo2ipa/lib/rust-toolchain b/operator/halo2ipa/lib/rust-toolchain deleted file mode 100644 index 989860f40..000000000 --- a/operator/halo2ipa/lib/rust-toolchain +++ /dev/null @@ -1,3 +0,0 @@ -[toolchain] -channel = "nightly-2024-04-17" -components = ["llvm-tools", "rustc-dev"] diff --git a/operator/halo2ipa/lib/src/lib.rs b/operator/halo2ipa/lib/src/lib.rs deleted file mode 100644 index c3747367b..000000000 --- a/operator/halo2ipa/lib/src/lib.rs +++ /dev/null @@ -1,270 +0,0 @@ -use halo2_proofs::{ - plonk::{read_fr, read_params, verify_proof, VerifyingKey}, - poly::{ - commitment::Params, - ipa::{commitment::IPACommitmentScheme, multiopen::VerifierIPA, strategy::SingleStrategy}, - VerificationStrategy, - }, - transcript::{Blake2bRead, Challenge255, TranscriptReadBuffer}, - SerdeFormat, -}; -use halo2curves::bn256::G1Affine; -use log::error; -use std::{io::BufReader, slice}; - -#[no_mangle] -pub extern "C" fn verify_halo2_ipa_proof_ffi( - proof_buf: *const u8, - proof_len: u32, - params_buf: *const u8, - params_len: u32, - public_input_buf: *const u8, - public_input_len: u32, -) -> bool { - if proof_buf.is_null() || params_buf.is_null() || public_input_buf.is_null() { - error!("Halo2 IPA input buffer length null"); - return false; - } - - // For Halo2 the `params_buf` contains the serialized cs, vk, and params with there respective sizes serialized as u32 values (4 bytes) => 3 * 4 bytes = 12 by the concatenated variable length buffers: - // We therefore require that the `params_buf` is greater than 12 bytes and treat the case that buffer lengths and buffers themselves are 0 size as false. - // [ cs_len | vk_len | vk_params_len | cs_bytes | vk_bytes | vk_params_bytes ]. - if proof_len == 0 || params_len <= 12 || public_input_len == 0 { - error!("Halo2 IPA input buffer length zero size"); - return false; - } - - let proof_bytes = unsafe { slice::from_raw_parts(proof_buf, proof_len as usize) }; - - let params_bytes = unsafe { slice::from_raw_parts(params_buf, params_len as usize) }; - - let public_input_bytes = - unsafe { slice::from_raw_parts(public_input_buf, public_input_len as usize) }; - - // Deserialize bytes - let Ok((cs_bytes, vk_bytes, vk_params_bytes)) = read_params(params_bytes) else { - error!("Failed to deserialize verifiation parameter buffers from parameters buffer"); - return false; - }; - - let Ok(cs) = bincode::deserialize(cs_bytes) else { - error!("Failed to deserialize constraint system"); - return false; - }; - - let Ok(vk) = - VerifyingKey::::read(&mut BufReader::new(vk_bytes), SerdeFormat::RawBytes, cs) - else { - error!("Failed to deserialize verification key"); - return false; - }; - - let Ok(params) = Params::read::<_>(&mut BufReader::new(vk_params_bytes)) else { - error!("Failed to deserialize verification parameters"); - return false; - }; - - let Ok(res) = read_fr(public_input_bytes) else { - error!("Failed to deserialize public inputs"); - return false; - }; - let strategy = SingleStrategy::new(¶ms); - let instances = res; - let mut transcript = Blake2bRead::<&[u8], G1Affine, Challenge255<_>>::init(proof_bytes); - verify_proof::< - IPACommitmentScheme, - VerifierIPA, - Challenge255, - Blake2bRead<&[u8], G1Affine, Challenge255>, - SingleStrategy, - >(¶ms, &vk, strategy, &[vec![instances]], &mut transcript) - .is_ok() -} - -#[cfg(test)] -mod tests { - use super::*; - - use ff::{Field, PrimeField}; - use halo2_backend::poly::commitment::ParamsProver; - use halo2_proofs::{ - plonk::{ - create_proof, keygen_pk, keygen_vk_custom, verify_proof, write_params, StandardPlonk, - }, - poly::ipa::{ - commitment::{IPACommitmentScheme, ParamsIPA}, - multiopen::ProverIPA, - }, - transcript::{ - Blake2bRead, Blake2bWrite, Challenge255, TranscriptReadBuffer, TranscriptWriterBuffer, - }, - }; - use halo2curves::bn256::Fr; - use rand_core::OsRng; - use std::{ - fs::File, - io::{BufWriter, Read, Write}, - }; - - const PROOF: &[u8] = include_bytes!("../../../../scripts/test_files/halo2_ipa/proof.bin"); - - const PUB_INPUT: &[u8] = - include_bytes!("../../../../scripts/test_files/halo2_ipa/pub_input.bin"); - - const PARAMS: &[u8] = include_bytes!("../../../../scripts/test_files/halo2_ipa/params.bin"); - - #[test] - fn halo2_serialization_works() { - let k = 4; - let circuit = StandardPlonk(Fr::random(OsRng)); - let params = ParamsIPA::::new(k); - let compress_selectors = true; - let vk = - keygen_vk_custom(¶ms, &circuit, compress_selectors).expect("vk should not fail"); - let cs = vk.clone().cs; - let instances = vec![vec![circuit.0]]; - let pk = keygen_pk(¶ms, vk.clone(), &circuit).expect("pk should not fail"); - - let mut transcript = Blake2bWrite::<_, _, Challenge255<_>>::init(vec![]); - create_proof::< - IPACommitmentScheme, - ProverIPA, - Challenge255, - _, - Blake2bWrite, G1Affine, Challenge255<_>>, - _, - >( - ¶ms, - &pk, - &[circuit.clone()], - &[instances.clone()], - OsRng, - &mut transcript, - ) - .expect("prover should not fail"); - - let proof = transcript.finalize(); - let strategy = SingleStrategy::new(¶ms); - let mut transcript = Blake2bRead::<_, _, Challenge255<_>>::init(&proof[..]); - - verify_proof::< - IPACommitmentScheme, - VerifierIPA, - Challenge255, - Blake2bRead<&[u8], G1Affine, Challenge255>, - SingleStrategy, - >( - ¶ms, - &vk, - strategy, - &[instances.clone()], - &mut transcript, - ) - .expect("verifier shoud not fail"); - - //write proof - std::fs::write("proof.bin", &proof[..]).expect("should succeed to write new proof"); - - //write public input - let f = File::create("pub_input.bin").unwrap(); - let mut writer = BufWriter::new(f); - instances.to_vec().into_iter().flatten().for_each(|fp| { - writer.write(&fp.to_repr()).unwrap(); - }); - writer.flush().unwrap(); - - let mut vk_buf = Vec::new(); - vk.write(&mut vk_buf, SerdeFormat::RawBytes).unwrap(); - - let mut params_buf = Vec::new(); - params.write(&mut params_buf).unwrap(); - - //Write everything to parameters file - File::create("params.bin").unwrap(); - write_params(¶ms_buf, cs, &vk_buf, "params.bin").unwrap(); - - //read proof - let proof = std::fs::read("proof.bin").expect("should succeed to read proof"); - - //read instances - let mut f = File::open("pub_input.bin").unwrap(); - let mut buf = Vec::new(); - f.read_to_end(&mut buf).unwrap(); - let res = read_fr(&buf).unwrap(); - let instances = res; - - let mut f = File::open("params.bin").unwrap(); - let mut params_buf = Vec::new(); - f.read_to_end(&mut params_buf).unwrap(); - - let (cs_bytes, vk_bytes, vk_params_bytes) = read_params(¶ms_buf).unwrap(); - - let cs = bincode::deserialize(cs_bytes).unwrap(); - let vk = VerifyingKey::::read( - &mut BufReader::new(vk_bytes), - SerdeFormat::RawBytes, - cs, - ) - .unwrap(); - let params = Params::read::<_>(&mut BufReader::new(vk_params_bytes)).unwrap(); - - let strategy = SingleStrategy::new(¶ms); - let mut transcript = Blake2bRead::<_, _, Challenge255<_>>::init(&proof[..]); - assert!(verify_proof::< - IPACommitmentScheme, - VerifierIPA, - Challenge255, - Blake2bRead<&[u8], G1Affine, Challenge255>, - SingleStrategy, - >(¶ms, &vk, strategy, &[vec![instances]], &mut transcript) - .is_ok()); - std::fs::remove_file("proof.bin").unwrap(); - std::fs::remove_file("pub_input.bin").unwrap(); - std::fs::remove_file("params.bin").unwrap(); - } - - #[test] - fn verify_halo2_plonk_proof() { - let proof_len = PROOF.len(); - let proof_bytes = PROOF.as_ptr(); - - let params_len = PARAMS.len(); - let params_bytes = PARAMS.as_ptr(); - - let public_input_len = PUB_INPUT.len(); - let public_input_bytes = PUB_INPUT.as_ptr(); - - let result = verify_halo2_ipa_proof_ffi( - proof_bytes, - proof_len as u32, - params_bytes, - params_len as u32, - public_input_bytes, - public_input_len as u32, - ); - assert!(result) - } - - #[test] - fn verify_halo2_plonk_proof_aborts_with_bad_proof() { - // Select Proof Bytes - let proof_len = PROOF.len(); - let proof_bytes = PROOF.as_ptr(); - - let params_len = PARAMS.len(); - let params_bytes = PARAMS.as_ptr(); - - let public_input_len = PUB_INPUT.len(); - let public_input_bytes = PUB_INPUT.as_ptr(); - - let result = verify_halo2_ipa_proof_ffi( - proof_bytes, - (proof_len - 1) as u32, - params_bytes, - params_len as u32, - public_input_bytes, - public_input_len as u32, - ); - assert!(!result) - } -} diff --git a/operator/halo2kzg/.gitignore b/operator/halo2kzg/.gitignore deleted file mode 100644 index aaf0a8549..000000000 --- a/operator/halo2kzg/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -lib/libhalo2kzg_verifier.so -lib/libhalo2kzg_verifier.a -lib/libhalo2kzg_verifier.dylib diff --git a/operator/halo2kzg/halo2kzg.go b/operator/halo2kzg/halo2kzg.go deleted file mode 100644 index 0f2f83a32..000000000 --- a/operator/halo2kzg/halo2kzg.go +++ /dev/null @@ -1,34 +0,0 @@ -package halo2kzg - -/* -#cgo linux LDFLAGS: ${SRCDIR}/lib/libhalo2kzg_verifier.a -ldl -lrt -lm -lssl -lcrypto -Wl,--allow-multiple-definition -#cgo darwin LDFLAGS: -L./lib -lhalo2kzg_verifier -#include "lib/halo2kzg.h" -*/ -import "C" -import "unsafe" - -func VerifyHalo2KzgProof( - proofBuffer []byte, - paramsBuffer []byte, - publicInputBuffer []byte, -) bool { - /* - For Halo2 the `paramsBuffer` contains the serialized cs, vk, and params with there respective sizes serialized as u32 values (4 bytes) => 3 * 4 bytes = 12 followed by the concatenated variable length buffers: - We therefore require that the `paramsBuffer` is greater than 12 bytes and treat the case that buffer lengths and buffers themselves are 0 size as false. - [ cs_len | vk_len | vk_params_len | cs_bytes | vk_bytes | vk_params_bytes ]. - */ - if len(proofBuffer) == 0 || len(paramsBuffer) <= 12 || len(publicInputBuffer) == 0 { - return false - } - - proofPtr := (*C.uchar)(unsafe.Pointer(&proofBuffer[0])) - paramsPtr := (*C.uchar)(unsafe.Pointer(¶msBuffer[0])) - publicInputPtr := (*C.uchar)(unsafe.Pointer(&publicInputBuffer[0])) - - return (bool)(C.verify_halo2_kzg_proof_ffi( - proofPtr, (C.uint32_t)(len(proofBuffer)), - paramsPtr, (C.uint32_t)(len(paramsBuffer)), - publicInputPtr, (C.uint32_t)(len(publicInputBuffer)), - )) -} diff --git a/operator/halo2kzg/halo2kzg_test.go b/operator/halo2kzg/halo2kzg_test.go deleted file mode 100644 index a1ad8c1a0..000000000 --- a/operator/halo2kzg/halo2kzg_test.go +++ /dev/null @@ -1,39 +0,0 @@ -package halo2kzg_test - -import ( - "os" - "testing" - - "github.com/yetanotherco/aligned_layer/operator/halo2kzg" -) - -const ProofFilePath = "../../scripts/test_files/halo2_kzg/proof.bin" - -const PublicInputPath = "../../scripts/test_files/halo2_kzg/pub_input.bin" - -const ParamsFilePath = "../../scripts/test_files/halo2_kzg/params.bin" - -func TestHalo2KzgProofVerifies(t *testing.T) { - proofBytes, err := os.ReadFile(ProofFilePath) - if err != nil { - t.Errorf("could not open proof file: %s", err) - } - - paramsBytes, err := os.ReadFile(ParamsFilePath) - if err != nil { - t.Errorf("could not open params file: %s", err) - } - - publicInputBytes, err := os.ReadFile(PublicInputPath) - if err != nil { - t.Errorf("could not open public input file: %s", err) - } - - if !halo2kzg.VerifyHalo2KzgProof( - ([]byte)(proofBytes), - ([]byte)(paramsBytes), - ([]byte)(publicInputBytes), - ) { - t.Errorf("proof did not verify") - } -} diff --git a/operator/halo2kzg/lib/Cargo.lock b/operator/halo2kzg/lib/Cargo.lock deleted file mode 100644 index 92ad6ac9a..000000000 --- a/operator/halo2kzg/lib/Cargo.lock +++ /dev/null @@ -1,1104 +0,0 @@ -# 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 = "arrayref" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" - -[[package]] -name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "assert_matches" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" - -[[package]] -name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[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 = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[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 = "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 = "blake2b_simd" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "block-padding", - "generic-array", -] - -[[package]] -name = "block-padding" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "cc" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9e8aabfac534be767c909e0690571677d49f41bd8465ae876fe043d52ba5292" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "constant_time_eq" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" - -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - -[[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-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - -[[package]] -name = "dhat" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cd11d84628e233de0ce467de10b8633f4ddaecafadefc86e13b84b8739b827" -dependencies = [ - "backtrace", - "lazy_static", - "mintex", - "parking_lot", - "rustc-hash", - "serde", - "serde_json", - "thousands", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "either" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" - -[[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 = "fastrand" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "bitvec", - "rand_core", - "subtle", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" - -[[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 = "gumdrop" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc700f989d2f6f0248546222d9b4258f5b02a171a431f8285a81c08142629e3" -dependencies = [ - "gumdrop_derive", -] - -[[package]] -name = "gumdrop_derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "729f9bd3449d77e7831a18abfb7ba2f99ee813dfd15b8c2167c9a54ba20aa99d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "halo2_backend" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=22b5d224f3cbeba917e48ba10c618a165e43cd23#22b5d224f3cbeba917e48ba10c618a165e43cd23" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "halo2_middleware", - "halo2curves", - "rand_chacha", - "rand_core", - "rayon", - "serde", - "sha3", - "tracing", -] - -[[package]] -name = "halo2_frontend" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=22b5d224f3cbeba917e48ba10c618a165e43cd23#22b5d224f3cbeba917e48ba10c618a165e43cd23" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "halo2_middleware", - "halo2curves", - "tracing", -] - -[[package]] -name = "halo2_middleware" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=22b5d224f3cbeba917e48ba10c618a165e43cd23#22b5d224f3cbeba917e48ba10c618a165e43cd23" -dependencies = [ - "ff", - "halo2curves", - "rayon", - "serde", -] - -[[package]] -name = "halo2_proofs" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=22b5d224f3cbeba917e48ba10c618a165e43cd23#22b5d224f3cbeba917e48ba10c618a165e43cd23" -dependencies = [ - "bincode", - "group", - "halo2_backend", - "halo2_frontend", - "halo2_middleware", - "halo2curves", - "log", - "rand_core", - "serde", -] - -[[package]] -name = "halo2curves" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db81d01d0bbfec9f624d7590fc6929ee2537a64ec1e080d8f8c9e2d2da291405" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "hex", - "lazy_static", - "num-bigint", - "num-traits", - "pairing", - "pasta_curves", - "paste", - "rand", - "rand_core", - "rayon", - "serde", - "serde_arrays", - "static_assertions", - "subtle", -] - -[[package]] -name = "halo2kzg-verifier-ffi" -version = "0.1.0" -dependencies = [ - "assert_matches", - "bincode", - "dhat", - "ff", - "group", - "gumdrop", - "halo2_backend", - "halo2_proofs", - "halo2curves", - "log", - "proptest", - "rand_chacha", - "rand_core", - "rayon", - "serde_json", - "tracing", -] - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin", -] - -[[package]] -name = "libc" -version = "0.2.155" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" - -[[package]] -name = "libm" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" - -[[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", -] - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "miniz_oxide" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" -dependencies = [ - "adler", -] - -[[package]] -name = "mintex" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bec4598fddb13cc7b528819e697852653252b760f1228b7642679bf2ff2cd07" - -[[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", -] - -[[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-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "object" -version = "0.36.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - -[[package]] -name = "pairing" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" -dependencies = [ - "group", -] - -[[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", -] - -[[package]] -name = "pasta_curves" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "hex", - "lazy_static", - "rand", - "serde", - "static_assertions", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pin-project-lite" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" - -[[package]] -name = "ppv-lite86" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" -dependencies = [ - "zerocopy", -] - -[[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 = "proptest" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags", - "lazy_static", - "num-traits", - "rand", - "rand_chacha", - "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", - "unarray", -] - -[[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 = "redox_syscall" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" -dependencies = [ - "bitflags", -] - -[[package]] -name = "regex-syntax" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" - -[[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 = "rustix" -version = "0.38.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", -] - -[[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 = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "serde" -version = "1.0.206" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b3e4cd94123dd520a128bcd11e34d9e9e423e7e3e50425cb1b4b1e3549d0284" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_arrays" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38636132857f68ec3d5f3eb121166d2af33cb55174c4d5ff645db6165cbef0fd" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.206" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabfb6138d2383ea8208cf98ccf69cdfb1aff4088460681d84189aa259762f97" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.74", -] - -[[package]] -name = "serde_json" -version = "1.0.123" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a11b3b6ce5cfd25b9759a24c3ed4bf24e23893866863547de4655518c951bcd4" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "sha3" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" -dependencies = [ - "block-buffer", - "digest", - "keccak", - "opaque-debug", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[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.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "thousands" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "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.74", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "wait-timeout" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" -dependencies = [ - "libc", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "byteorder", - "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.74", -] diff --git a/operator/halo2kzg/lib/Cargo.toml b/operator/halo2kzg/lib/Cargo.toml deleted file mode 100644 index f9756f8a3..000000000 --- a/operator/halo2kzg/lib/Cargo.toml +++ /dev/null @@ -1,27 +0,0 @@ -[package] -name = "halo2kzg-verifier-ffi" -version = "0.1.0" -edition = "2021" - -[dependencies] -bincode = "1.3.3" -halo2curves = { version = "0.6.0", default-features = false } -rand_core = { version = "0.6", default-features = false, features = ["getrandom"] } -halo2_backend = { git = "https://github.com/yetanotherco/yet-another-halo2-fork.git", rev = "22b5d224f3cbeba917e48ba10c618a165e43cd23" } -halo2_proofs = { git = "https://github.com/yetanotherco/yet-another-halo2-fork.git", rev = "22b5d224f3cbeba917e48ba10c618a165e43cd23" } -ff = "0.13" -log = "0.4.21" - -[dev-dependencies] -group = "0.13" -tracing = "0.1" -rand_chacha = "0.3" -rayon = "1.8" -assert_matches = "1.5" -gumdrop = "0.8" -proptest = "1" -dhat = "0.3.2" -serde_json = "1" - -[lib] -crate-type = ["cdylib", "staticlib", "lib"] \ No newline at end of file diff --git a/operator/halo2kzg/lib/halo2kzg.h b/operator/halo2kzg/lib/halo2kzg.h deleted file mode 100644 index 2943a4009..000000000 --- a/operator/halo2kzg/lib/halo2kzg.h +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include - -bool verify_halo2_kzg_proof_ffi(unsigned char *proof_bytes, uint32_t proof_len, - unsigned char *params_bytes, - uint32_t params_len, - unsigned char *public_input_bytes, - uint32_t public_input_len); diff --git a/operator/halo2kzg/lib/rust-toolchain b/operator/halo2kzg/lib/rust-toolchain deleted file mode 100644 index 3a306210c..000000000 --- a/operator/halo2kzg/lib/rust-toolchain +++ /dev/null @@ -1,3 +0,0 @@ -[toolchain] -channel = "nightly-2024-04-17" -components = ["llvm-tools", "rustc-dev"] \ No newline at end of file diff --git a/operator/halo2kzg/lib/src/lib.rs b/operator/halo2kzg/lib/src/lib.rs deleted file mode 100644 index 025d91630..000000000 --- a/operator/halo2kzg/lib/src/lib.rs +++ /dev/null @@ -1,277 +0,0 @@ -use halo2_proofs::{ - plonk::{read_fr, read_params, verify_proof, VerifyingKey}, - poly::{ - commitment::Params, - kzg::{ - commitment::KZGCommitmentScheme, multiopen::VerifierSHPLONK, strategy::SingleStrategy, - }, - }, - transcript::{Blake2bRead, Challenge255, TranscriptReadBuffer}, - SerdeFormat, -}; -use halo2curves::bn256::{Bn256, G1Affine}; -use log::error; -use std::{io::BufReader, slice}; - -#[no_mangle] -pub extern "C" fn verify_halo2_kzg_proof_ffi( - proof_buf: *const u8, - proof_len: u32, - params_buf: *const u8, - params_len: u32, - public_input_buf: *const u8, - public_input_len: u32, -) -> bool { - if proof_buf.is_null() || params_buf.is_null() || public_input_buf.is_null() { - error!("Input buffer length null"); - return false; - } - - // For Halo2 the `params_buf` contains the serialized cs, vk, and params with there respective sizes serialized as u32 values (4 bytes) => 3 * 4 bytes = 12 by the concatenated variable length buffers: - // We therefore require that the `params_buf` is greater than 12 bytes and treat the case that buffer lengths and buffers themselves are 0 size as false. - // [ cs_len | vk_len | vk_params_len | cs_bytes | vk_bytes | vk_params_bytes ]. - if proof_len == 0 || params_len <= 12 || public_input_len == 0 { - error!("Input buffer length zero size"); - return false; - } - - let proof_bytes = unsafe { slice::from_raw_parts(proof_buf, proof_len as usize) }; - - let params_bytes = unsafe { slice::from_raw_parts(params_buf, params_len as usize) }; - - let public_input_bytes = - unsafe { slice::from_raw_parts(public_input_buf, public_input_len as usize) }; - - let Ok((cs_bytes, vk_bytes, vk_params_bytes)) = read_params(params_bytes) else { - error!("Failed to deserialize verifiation parameter buffers from parameters buffer"); - return false; - }; - - let Ok(cs) = bincode::deserialize(cs_bytes) else { - error!("Failed to deserialize verifiation parameter buffers from parameters buffer"); - return false; - }; - - let Ok(vk) = - VerifyingKey::::read(&mut BufReader::new(vk_bytes), SerdeFormat::RawBytes, cs) - else { - error!("Failed to deserialize verification key"); - return false; - }; - - let Ok(params) = Params::read::<_>(&mut BufReader::new(vk_params_bytes)) else { - error!("Failed to deserialize verification parameters"); - return false; - }; - - let Ok(res) = read_fr(public_input_bytes) else { - error!("Failed to deserialize public inputs"); - return false; - }; - let strategy = SingleStrategy::new(¶ms); - let instances = res; - let mut transcript = Blake2bRead::<&[u8], G1Affine, Challenge255<_>>::init(proof_bytes); - verify_proof::< - KZGCommitmentScheme, - VerifierSHPLONK, - Challenge255, - Blake2bRead<&[u8], G1Affine, Challenge255>, - SingleStrategy, - >(¶ms, &vk, strategy, &[vec![instances]], &mut transcript) - .is_ok() -} - -#[cfg(test)] -mod tests { - use super::*; - - use ff::{Field, PrimeField}; - use halo2_proofs::{ - plonk::{ - create_proof, keygen_pk, keygen_vk_custom, verify_proof, write_params, StandardPlonk, - }, - poly::kzg::{ - commitment::{KZGCommitmentScheme, ParamsKZG}, - multiopen::ProverSHPLONK, - }, - transcript::{ - Blake2bRead, Blake2bWrite, Challenge255, TranscriptReadBuffer, TranscriptWriterBuffer, - }, - }; - use halo2curves::bn256::Fr; - use rand_core::OsRng; - use std::{ - fs::File, - io::{BufWriter, Read, Write}, - }; - - const PROOF: &[u8] = include_bytes!("../../../../scripts/test_files/halo2_kzg/proof.bin"); - - const PUB_INPUT: &[u8] = - include_bytes!("../../../../scripts/test_files/halo2_kzg/pub_input.bin"); - - const PARAMS: &[u8] = include_bytes!("../../../../scripts/test_files/halo2_kzg/params.bin"); - - #[test] - fn halo2_serialization_works() { - // Setup Proof Params - let circuit = StandardPlonk(Fr::random(OsRng)); - let params = ParamsKZG::::setup(4, OsRng); - let compress_selectors = true; - let vk = - keygen_vk_custom(¶ms, &circuit, compress_selectors).expect("vk should not fail"); - let instances = vec![vec![circuit.0]]; - let cs = vk.clone().cs; - let pk = keygen_pk(¶ms, vk.clone(), &circuit).expect("pk should not fail"); - - // Create Proof - let mut transcript = Blake2bWrite::<_, _, Challenge255<_>>::init(vec![]); - create_proof::< - KZGCommitmentScheme, - ProverSHPLONK<'_, Bn256>, - Challenge255, - _, - Blake2bWrite, G1Affine, Challenge255<_>>, - _, - >( - ¶ms, - &pk, - &[circuit], - &[instances.clone()], - OsRng, - &mut transcript, - ) - .expect("prover should not fail"); - - let proof = transcript.finalize(); - let vk_params = params.verifier_params(); - let strategy = SingleStrategy::new(&vk_params); - let mut transcript = Blake2bRead::<_, _, Challenge255<_>>::init(&proof[..]); - - // Verify Proof - verify_proof::< - KZGCommitmentScheme, - VerifierSHPLONK, - Challenge255, - Blake2bRead<&[u8], G1Affine, Challenge255>, - SingleStrategy, - >( - &vk_params, - &vk, - strategy, - &[instances.clone()], - &mut transcript, - ) - .expect("verifier should not fail"); - - //write proof - std::fs::write("proof.bin", &proof[..]).expect("should succeed to write new proof"); - - //write public inputs - let f = File::create("pub_input.bin").unwrap(); - let mut writer = BufWriter::new(f); - instances.to_vec().into_iter().flatten().for_each(|fp| { - writer.write(&fp.to_repr()).unwrap(); - }); - writer.flush().unwrap(); - - let mut vk_buf = Vec::new(); - vk.write(&mut vk_buf, SerdeFormat::RawBytes).unwrap(); - - let mut params_buf = Vec::new(); - vk_params.write(&mut params_buf).unwrap(); - - write_params(¶ms_buf, cs, &vk_buf, "params.bin").unwrap(); - - //read proof - let proof = std::fs::read("proof.bin").expect("should succeed to read proof"); - - //read instances - let mut f = File::open("pub_input.bin").unwrap(); - let mut buf = Vec::new(); - f.read_to_end(&mut buf).unwrap(); - let res = read_fr(&buf).unwrap(); - let instances = res; - - let mut f = File::open("params.bin").unwrap(); - let mut params_buf = Vec::new(); - f.read_to_end(&mut params_buf).unwrap(); - - let (cs_bytes, vk_bytes, vk_params_bytes) = read_params(¶ms_buf).unwrap(); - - let cs = bincode::deserialize(cs_bytes).unwrap(); - let vk = VerifyingKey::::read( - &mut BufReader::new(vk_bytes), - SerdeFormat::RawBytes, - cs, - ) - .unwrap(); - let params = Params::read::<_>(&mut BufReader::new(vk_params_bytes)).unwrap(); - - let strategy = SingleStrategy::new(¶ms); - let mut transcript = Blake2bRead::<_, _, Challenge255<_>>::init(&proof[..]); - assert!(verify_proof::< - KZGCommitmentScheme, - VerifierSHPLONK, - Challenge255, - Blake2bRead<&[u8], G1Affine, Challenge255>, - SingleStrategy, - >( - &vk_params, - &vk, - strategy, - &[vec![instances]], - &mut transcript - ) - .is_ok()); - std::fs::remove_file("proof.bin").unwrap(); - std::fs::remove_file("pub_input.bin").unwrap(); - std::fs::remove_file("params.bin").unwrap(); - } - - #[test] - fn verify_halo2_plonk_proof() { - let proof_len = PROOF.len(); - let proof_buffer = PROOF.as_ptr(); - - let params_len = PARAMS.len(); - let params_bytes = PARAMS.as_ptr(); - - let public_input_len = PUB_INPUT.len(); - let public_input_buffer = PUB_INPUT.as_ptr(); - - let result = verify_halo2_kzg_proof_ffi( - proof_buffer, - proof_len as u32, - params_bytes, - params_len as u32, - public_input_buffer, - public_input_len as u32, - ); - assert!(result) - } - - #[test] - fn verify_halo2_plonk_proof_aborts_with_bad_proof() { - // Select Proof Bytes - let proof_len = PROOF.len(); - let proof_buffer = PROOF.as_ptr(); - - let params_len = PARAMS.len(); - let params_bytes = PARAMS.as_ptr(); - - // Select Public Input Bytes - let public_input_len = PUB_INPUT.len(); - let public_input_buffer = PUB_INPUT.as_ptr(); - - let result = verify_halo2_kzg_proof_ffi( - proof_buffer, - (proof_len - 1) as u32, - params_bytes, - params_len as u32, - public_input_buffer, - public_input_len as u32, - ); - assert!(!result) - } -} diff --git a/operator/merkle_tree/lib/Cargo.lock b/operator/merkle_tree/lib/Cargo.lock index bbae7f9b3..6833d2572 100644 --- a/operator/merkle_tree/lib/Cargo.lock +++ b/operator/merkle_tree/lib/Cargo.lock @@ -1710,9 +1710,8 @@ dependencies = [ [[package]] name = "lambdaworks-crypto" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb5d4f22241504f7c7b8d2c3a7d7835d7c07117f10bff2a7d96a9ef6ef217c3" +version = "0.10.0" +source = "git+https://github.com/lambdaclass/lambdaworks.git?rev=efd46f0b0aea3aa95d94bba7de86cb96611b40d3#efd46f0b0aea3aa95d94bba7de86cb96611b40d3" dependencies = [ "lambdaworks-math", "serde", @@ -1722,9 +1721,8 @@ dependencies = [ [[package]] name = "lambdaworks-math" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "358e172628e713b80a530a59654154bfc45783a6ed70ea284839800cebdf8f97" +version = "0.10.0" +source = "git+https://github.com/lambdaclass/lambdaworks.git?rev=efd46f0b0aea3aa95d94bba7de86cb96611b40d3#efd46f0b0aea3aa95d94bba7de86cb96611b40d3" dependencies = [ "serde", "serde_json", diff --git a/operator/merkle_tree/lib/Cargo.toml b/operator/merkle_tree/lib/Cargo.toml index f862404cf..ba5fe6112 100644 --- a/operator/merkle_tree/lib/Cargo.toml +++ b/operator/merkle_tree/lib/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" serde = { version = "1.0.201", features = ["derive"] } serde_json = "1.0.117" bincode = "1.3.3" -lambdaworks-crypto = { version = "0.7.0", features = ["serde"] } +lambdaworks-crypto = { git = "https://github.com/lambdaclass/lambdaworks.git", rev = "efd46f0b0aea3aa95d94bba7de86cb96611b40d3", features = ["serde"] } hex = "0.4.3" sha3 = "0.10.8" aligned-sdk = { path = "../../../batcher/aligned-sdk" } diff --git a/operator/merkle_tree/lib/src/lib.rs b/operator/merkle_tree/lib/src/lib.rs index d5b55669d..415b6363c 100644 --- a/operator/merkle_tree/lib/src/lib.rs +++ b/operator/merkle_tree/lib/src/lib.rs @@ -43,8 +43,12 @@ pub extern "C" fn verify_merkle_tree_batch_ffi( let batch_data_comm: Vec = batch.into_iter().map(|v| v.into()).collect(); - let computed_batch_merkle_tree: MerkleTree = - MerkleTree::build(&batch_data_comm); + let Some(computed_batch_merkle_tree) = + MerkleTree::::build(&batch_data_comm) + else { + error!("Failed to build merkle tree, batch data commitment is empty"); + return false; + }; computed_batch_merkle_tree.root == *merkle_root } @@ -66,10 +70,7 @@ mod tests { merkle_root_file.read_to_end(&mut root_vec).unwrap(); let mut merkle_root = [0; 32]; - merkle_root.copy_from_slice( - &hex::decode(&root_vec) - .unwrap(), - ); + merkle_root.copy_from_slice(&hex::decode(&root_vec).unwrap()); let result = verify_merkle_tree_batch_ffi(bytes_vec.as_ptr(), bytes_vec.len(), &merkle_root); @@ -86,10 +87,7 @@ mod tests { merkle_root_file.read_to_end(&mut root_vec).unwrap(); let mut merkle_root = [0; 32]; - merkle_root.copy_from_slice( - &hex::decode(&root_vec) - .unwrap(), - ); + merkle_root.copy_from_slice(&hex::decode(&root_vec).unwrap()); let result = verify_merkle_tree_batch_ffi(bytes_vec.as_ptr(), bytes_vec.len(), &merkle_root); @@ -106,10 +104,7 @@ mod tests { merkle_root_file.read_to_end(&mut root_vec).unwrap(); let mut merkle_root = [0; 32]; - merkle_root.copy_from_slice( - &hex::decode(&root_vec) - .unwrap(), - ); + merkle_root.copy_from_slice(&hex::decode(&root_vec).unwrap()); let result = verify_merkle_tree_batch_ffi(bytes_vec.as_ptr(), bytes_vec.len(), &merkle_root); diff --git a/operator/merkle_tree/lib/test_files/merkle_root.bin b/operator/merkle_tree/lib/test_files/merkle_root.bin index 623903edd..235f4cb7b 100644 --- a/operator/merkle_tree/lib/test_files/merkle_root.bin +++ b/operator/merkle_tree/lib/test_files/merkle_root.bin @@ -1 +1 @@ -715181f01c095618472a72cd06e384d92f02eadc4ea28bf097181b17fdc57f28 \ No newline at end of file +d8f7329e4f522a871373c6251aa3c39be8b89766e54174c9e6457fcd491cd86d \ No newline at end of file diff --git a/operator/merkle_tree/lib/test_files/merkle_tree_batch.bin b/operator/merkle_tree/lib/test_files/merkle_tree_batch.bin index 733703c54..6ad052ec7 100644 Binary files a/operator/merkle_tree/lib/test_files/merkle_tree_batch.bin and b/operator/merkle_tree/lib/test_files/merkle_tree_batch.bin differ diff --git a/operator/pkg/operator.go b/operator/pkg/operator.go index 922b2c099..48c82f07b 100644 --- a/operator/pkg/operator.go +++ b/operator/pkg/operator.go @@ -5,8 +5,10 @@ import ( "context" "crypto/ecdsa" "encoding/hex" + "encoding/json" "fmt" "log" + "os" "sync" "time" @@ -16,8 +18,6 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/yetanotherco/aligned_layer/metrics" - "github.com/yetanotherco/aligned_layer/operator/halo2ipa" - "github.com/yetanotherco/aligned_layer/operator/halo2kzg" "github.com/yetanotherco/aligned_layer/operator/sp1" "github.com/Layr-Labs/eigensdk-go/crypto/bls" @@ -37,20 +37,23 @@ import ( ) type Operator struct { - Config config.OperatorConfig - Address ethcommon.Address - Socket string - Timeout time.Duration - PrivKey *ecdsa.PrivateKey - KeyPair *bls.KeyPair - OperatorId eigentypes.OperatorId - avsSubscriber chainio.AvsSubscriber - NewTaskCreatedChanV2 chan *servicemanager.ContractAlignedLayerServiceManagerNewBatchV2 - NewTaskCreatedChanV3 chan *servicemanager.ContractAlignedLayerServiceManagerNewBatchV3 - Logger logging.Logger - aggRpcClient AggregatorRpcClient - metricsReg *prometheus.Registry - metrics *metrics.Metrics + Config config.OperatorConfig + Address ethcommon.Address + Socket string + Timeout time.Duration + PrivKey *ecdsa.PrivateKey + KeyPair *bls.KeyPair + OperatorId eigentypes.OperatorId + avsSubscriber chainio.AvsSubscriber + avsReader chainio.AvsReader + NewTaskCreatedChanV2 chan *servicemanager.ContractAlignedLayerServiceManagerNewBatchV2 + NewTaskCreatedChanV3 chan *servicemanager.ContractAlignedLayerServiceManagerNewBatchV3 + Logger logging.Logger + aggRpcClient AggregatorRpcClient + metricsReg *prometheus.Registry + metrics *metrics.Metrics + lastProcessedBatch OperatorLastProcessedBatch + lastProcessedBatchLogFile string //Socket string //Timeout time.Duration } @@ -59,6 +62,7 @@ const ( BatchDownloadTimeout = 1 * time.Minute BatchDownloadMaxRetries = 3 BatchDownloadRetryDelay = 5 * time.Second + UnverifiedBatchOffset = 100 ) func NewOperatorFromConfig(configuration config.OperatorConfig) (*Operator, error) { @@ -104,26 +108,36 @@ func NewOperatorFromConfig(configuration config.OperatorConfig) (*Operator, erro operatorId := eigentypes.OperatorIdFromKeyPair(configuration.BlsConfig.KeyPair) address := configuration.Operator.Address + lastProcessedBatchLogFile := configuration.Operator.LastProcessedBatchFilePath // Metrics reg := prometheus.NewRegistry() operatorMetrics := metrics.NewMetrics(configuration.Operator.MetricsIpPortAddress, reg, logger) operator := &Operator{ - Config: configuration, - Logger: logger, - avsSubscriber: *avsSubscriber, - Address: address, - NewTaskCreatedChanV2: newTaskCreatedChanV2, - NewTaskCreatedChanV3: newTaskCreatedChanV3, - aggRpcClient: *rpcClient, - OperatorId: operatorId, - metricsReg: reg, - metrics: operatorMetrics, + Config: configuration, + Logger: logger, + avsSubscriber: *avsSubscriber, + avsReader: *avsReader, + Address: address, + NewTaskCreatedChanV2: newTaskCreatedChanV2, + NewTaskCreatedChanV3: newTaskCreatedChanV3, + aggRpcClient: *rpcClient, + OperatorId: operatorId, + metricsReg: reg, + metrics: operatorMetrics, + lastProcessedBatchLogFile: lastProcessedBatchLogFile, + lastProcessedBatch: OperatorLastProcessedBatch{ + BlockNumber: 0, + batchProcessedChan: make(chan uint32), + }, + // Timeout // Socket } + _ = operator.LoadLastProcessedBatch() + return operator, nil } @@ -135,6 +149,52 @@ func (o *Operator) SubscribeToNewTasksV3() (chan error, error) { return o.avsSubscriber.SubscribeToNewTasksV3(o.NewTaskCreatedChanV3) } +type OperatorLastProcessedBatch struct { + BlockNumber uint32 `json:"block_number"` + batchProcessedChan chan uint32 `json:"-"` +} + +func (o *Operator) LoadLastProcessedBatch() error { + file, err := os.ReadFile(o.lastProcessedBatchLogFile) + + if err != nil { + return fmt.Errorf("failed read from file: %v", err) + } + + err = json.Unmarshal(file, &o.lastProcessedBatch) + + if err != nil { + return fmt.Errorf("failed to unmarshal batch: %v", err) + } + + return nil +} + +func (o *Operator) UpdateLastProcessBatch(blockNumber uint32) error { + // we want to store the latest block number + if blockNumber < o.lastProcessedBatch.BlockNumber { + return nil + } + + o.lastProcessedBatch.BlockNumber = blockNumber + + // write to a file so it can be recovered in case of operator outage + json, err := json.Marshal(o.lastProcessedBatch) + + if err != nil { + return fmt.Errorf("failed to marshal batch: %v", err) + } + + err = os.WriteFile(o.lastProcessedBatchLogFile, json, os.ModePerm) + if err != nil { + return fmt.Errorf("failed to write to file: %v", err) + } + + o.Logger.Infof("Updated latest block json file, new block: %v", blockNumber) + + return nil +} + func (o *Operator) Start(ctx context.Context) error { subV2, err := o.SubscribeToNewTasksV2() if err != nil { @@ -153,13 +213,15 @@ func (o *Operator) Start(ctx context.Context) error { metricsErrChan = make(chan error, 1) } + go o.ProcessMissedBatchesWhileOffline() + for { select { case <-context.Background().Done(): o.Logger.Info("Operator shutting down...") return nil case err := <-metricsErrChan: - o.Logger.Fatal("Metrics server failed", "err", err) + o.Logger.Errorf("Metrics server failed", "err", err) case err := <-subV2: o.Logger.Infof("Error in websocket subscription", "err", err) subV2, err = o.SubscribeToNewTasksV2() @@ -176,10 +238,54 @@ func (o *Operator) Start(ctx context.Context) error { go o.handleNewBatchLogV2(newBatchLogV2) case newBatchLogV3 := <-o.NewTaskCreatedChanV3: go o.handleNewBatchLogV3(newBatchLogV3) + case blockNumber := <-o.lastProcessedBatch.batchProcessedChan: + err = o.UpdateLastProcessBatch(blockNumber) + if err != nil { + o.Logger.Errorf("Error while updating last process batch", "err", err) + } } } } +// Here we query all the batches that have not yet been verified starting from +// the latest verified batch by the operator. We also read from the previous +// `UnverifiedBatchOffset` blocks, because as batches are processed in parallel, there could be +// unverified batches slightly before the latest verified batch +func (o *Operator) ProcessMissedBatchesWhileOffline() { + // this is the default value + // and it means there was no file so no batches have been verified + if o.lastProcessedBatch.BlockNumber == 0 { + o.Logger.Info("Not continuing with missed batch processing, as operator hasn't verified anything yet...") + return + } + + o.Logger.Info("Getting missed tasks") + + // this check is necessary for overflows as go does not do saturating arithmetic + var fromBlock uint64 + if o.lastProcessedBatch.BlockNumber < UnverifiedBatchOffset { + fromBlock = 0 + } else { + fromBlock = uint64(o.lastProcessedBatch.BlockNumber - UnverifiedBatchOffset) + } + + logs, err := o.avsReader.GetNotRespondedTasksFrom(fromBlock) + if err != nil { + return + } + o.Logger.Infof(fmt.Sprintf("Missed tasks retrieved, total tasks to process: %v", len(logs))) + + if len(logs) == 0 { + return + } + + o.Logger.Infof("Starting to verify missed batches while offline") + for _, logEntry := range logs { + go o.handleNewBatchLogV3(&logEntry) + } + o.Logger.Info("Finished verifying all batches missed while offline") +} + // Currently, Operator can handle NewBatchV2 and NewBatchV3 events. // The difference between these events do not affect the operator @@ -191,8 +297,11 @@ func (o *Operator) Start(ctx context.Context) error { // Process of handling batches from V2 events: func (o *Operator) handleNewBatchLogV2(newBatchLog *servicemanager.ContractAlignedLayerServiceManagerNewBatchV2) { - o.Logger.Infof("Received new batch log V2") - err := o.ProcessNewBatchLogV2(newBatchLog) + var err error + defer func() { o.afterHandlingBatchV2(newBatchLog, err == nil) }() + + o.Logger.Info("Received new batch log V2") + err = o.ProcessNewBatchLogV2(newBatchLog) if err != nil { o.Logger.Infof("batch %x did not verify. Err: %v", newBatchLog.BatchMerkleRoot, err) return @@ -262,8 +371,10 @@ func (o *Operator) ProcessNewBatchLogV2(newBatchLog *servicemanager.ContractAlig // Process of handling batches from V3 events: func (o *Operator) handleNewBatchLogV3(newBatchLog *servicemanager.ContractAlignedLayerServiceManagerNewBatchV3) { + var err error + defer func() { o.afterHandlingBatchV3(newBatchLog, err == nil) }() o.Logger.Infof("Received new batch log V3") - err := o.ProcessNewBatchLogV3(newBatchLog) + err = o.ProcessNewBatchLogV3(newBatchLog) if err != nil { o.Logger.Infof("batch %x did not verify. Err: %v", newBatchLog.BatchMerkleRoot, err) return @@ -331,6 +442,18 @@ func (o *Operator) ProcessNewBatchLogV3(newBatchLog *servicemanager.ContractAlig return nil } +func (o *Operator) afterHandlingBatchV2(log *servicemanager.ContractAlignedLayerServiceManagerNewBatchV2, succeeded bool) { + if succeeded { + o.lastProcessedBatch.batchProcessedChan <- uint32(log.Raw.BlockNumber) + } +} + +func (o *Operator) afterHandlingBatchV3(log *servicemanager.ContractAlignedLayerServiceManagerNewBatchV3, succeeded bool) { + if succeeded { + o.lastProcessedBatch.batchProcessedChan <- uint32(log.Raw.BlockNumber) + } +} + func (o *Operator) verify(verificationData VerificationData, results chan bool) { switch verificationData.ProvingSystemId { case common.GnarkPlonkBls12_381: @@ -352,30 +475,11 @@ func (o *Operator) verify(verificationData VerificationData, results chan bool) results <- verificationResult case common.SP1: - verificationResult := sp1.VerifySp1Proof(verificationData.Proof, verificationData.VmProgramCode) o.Logger.Infof("SP1 proof verification result: %t", verificationResult) results <- verificationResult - case common.Halo2IPA: - - verificationResult := halo2ipa.VerifyHalo2IpaProof( - verificationData.Proof, - verificationData.VerificationKey, - verificationData.PubInput) - - o.Logger.Infof("Halo2-IPA proof verification result: %t", verificationResult) - results <- verificationResult - case common.Halo2KZG: - verificationResult := halo2kzg.VerifyHalo2KzgProof( - verificationData.Proof, - verificationData.VerificationKey, - verificationData.PubInput) - - o.Logger.Infof("Halo2-KZG proof verification result: %t", verificationResult) - results <- verificationResult case common.Risc0: - verificationResult := risc_zero.VerifyRiscZeroReceipt(verificationData.Proof, verificationData.VmProgramCode, verificationData.PubInput) diff --git a/operator/risc_zero/risc_zero_test.go b/operator/risc_zero/risc_zero_test.go index 454cc0044..cb83a06f5 100644 --- a/operator/risc_zero/risc_zero_test.go +++ b/operator/risc_zero/risc_zero_test.go @@ -7,12 +7,6 @@ import ( "github.com/yetanotherco/aligned_layer/operator/risc_zero" ) -const ProofFilePath = "../../scripts/test_files/halo2_kzg/proof.bin" - -const PublicInputPath = "../../scripts/test_files/halo2_kzg/pub_input.bin" - -const ParamsFilePath = "../../scripts/test_files/halo2_kzg/params.bin" - func TestFibonacciRiscZeroProofVerifies(t *testing.T) { innerReceiptBytes, err := os.ReadFile("../../scripts/test_files/risc_zero/fibonacci_proof_generator/risc_zero_fibonacci.proof") if err != nil { diff --git a/otel-collector.yaml b/otel-collector.yaml new file mode 100644 index 000000000..5730227fb --- /dev/null +++ b/otel-collector.yaml @@ -0,0 +1,27 @@ +receivers: + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 +processors: +extensions: + health_check: {} +exporters: + otlp: + endpoint: jaeger:4317 + tls: + insecure: true + debug: + +service: + extensions: [health_check] + pipelines: + traces: + receivers: [otlp] + processors: [] + exporters: [otlp] + + metrics: + receivers: [ otlp ] + processors: [ ] + exporters: [ debug ] \ No newline at end of file diff --git a/scripts/test_files/halo2_ipa/Cargo.lock b/scripts/test_files/halo2_ipa/Cargo.lock deleted file mode 100644 index 2e824dc0c..000000000 --- a/scripts/test_files/halo2_ipa/Cargo.lock +++ /dev/null @@ -1,1055 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "addr2line" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "arrayref" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" - -[[package]] -name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "assert_matches" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" - -[[package]] -name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[package]] -name = "backtrace" -version = "0.3.71" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[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 = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" - -[[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 = "blake2b_simd" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "block-padding", - "generic-array", -] - -[[package]] -name = "block-padding" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" - -[[package]] -name = "cc" -version = "1.0.98" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "constant_time_eq" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" - -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - -[[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-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - -[[package]] -name = "dhat" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cd11d84628e233de0ce467de10b8633f4ddaecafadefc86e13b84b8739b827" -dependencies = [ - "backtrace", - "lazy_static", - "mintex", - "parking_lot", - "rustc-hash", - "serde", - "serde_json", - "thousands", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "either" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" - -[[package]] -name = "errno" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" -dependencies = [ - "libc", - "windows-sys", -] - -[[package]] -name = "fastrand" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "bitvec", - "rand_core", - "subtle", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" - -[[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 = "gumdrop" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc700f989d2f6f0248546222d9b4258f5b02a171a431f8285a81c08142629e3" -dependencies = [ - "gumdrop_derive", -] - -[[package]] -name = "gumdrop_derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "729f9bd3449d77e7831a18abfb7ba2f99ee813dfd15b8c2167c9a54ba20aa99d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "halo2_backend" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=a3a56819d9183ac0b11c8d0543c7673c4a4c71a6#a3a56819d9183ac0b11c8d0543c7673c4a4c71a6" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "halo2_middleware", - "halo2curves", - "rand_chacha", - "rand_core", - "rayon", - "serde", - "sha3", - "tracing", -] - -[[package]] -name = "halo2_frontend" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=a3a56819d9183ac0b11c8d0543c7673c4a4c71a6#a3a56819d9183ac0b11c8d0543c7673c4a4c71a6" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "halo2_middleware", - "halo2curves", - "tracing", -] - -[[package]] -name = "halo2_ipa" -version = "0.1.0" -dependencies = [ - "assert_matches", - "bincode", - "dhat", - "ff", - "group", - "gumdrop", - "halo2_backend", - "halo2_proofs", - "halo2curves", - "proptest", - "rand_chacha", - "rand_core", - "rayon", - "serde_json", - "tracing", -] - -[[package]] -name = "halo2_middleware" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=a3a56819d9183ac0b11c8d0543c7673c4a4c71a6#a3a56819d9183ac0b11c8d0543c7673c4a4c71a6" -dependencies = [ - "ff", - "halo2curves", - "rayon", - "serde", -] - -[[package]] -name = "halo2_proofs" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=a3a56819d9183ac0b11c8d0543c7673c4a4c71a6#a3a56819d9183ac0b11c8d0543c7673c4a4c71a6" -dependencies = [ - "bincode", - "group", - "halo2_backend", - "halo2_frontend", - "halo2_middleware", - "halo2curves", - "rand_core", - "serde", -] - -[[package]] -name = "halo2curves" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db81d01d0bbfec9f624d7590fc6929ee2537a64ec1e080d8f8c9e2d2da291405" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "hex", - "lazy_static", - "num-bigint", - "num-traits", - "pairing", - "pasta_curves", - "paste", - "rand", - "rand_core", - "rayon", - "serde", - "serde_arrays", - "static_assertions", - "subtle", -] - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -dependencies = [ - "spin", -] - -[[package]] -name = "libc" -version = "0.2.155" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" - -[[package]] -name = "libm" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" - -[[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", -] - -[[package]] -name = "memchr" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" - -[[package]] -name = "miniz_oxide" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" -dependencies = [ - "adler", -] - -[[package]] -name = "mintex" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bec4598fddb13cc7b528819e697852653252b760f1228b7642679bf2ff2cd07" - -[[package]] -name = "num-bigint" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" -dependencies = [ - "num-integer", - "num-traits", -] - -[[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-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "object" -version = "0.32.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - -[[package]] -name = "pairing" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" -dependencies = [ - "group", -] - -[[package]] -name = "parking_lot" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" -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", -] - -[[package]] -name = "pasta_curves" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "hex", - "lazy_static", - "rand", - "serde", - "static_assertions", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pin-project-lite" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "proc-macro2" -version = "1.0.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "proptest" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags", - "lazy_static", - "num-traits", - "rand", - "rand_chacha", - "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", - "unarray", -] - -[[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 = "redox_syscall" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" -dependencies = [ - "bitflags", -] - -[[package]] -name = "regex-syntax" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" - -[[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 = "rustix" -version = "0.38.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys", -] - -[[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 = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "serde" -version = "1.0.202" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_arrays" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38636132857f68ec3d5f3eb121166d2af33cb55174c4d5ff645db6165cbef0fd" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.202" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "serde_json" -version = "1.0.117" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha3" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" -dependencies = [ - "block-buffer", - "digest", - "keccak", - "opaque-debug", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "subtle" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" - -[[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.65" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" -dependencies = [ - "cfg-if", - "fastrand", - "rustix", - "windows-sys", -] - -[[package]] -name = "thousands" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "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.65", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[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 = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[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.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" - -[[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.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" - -[[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.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] diff --git a/scripts/test_files/halo2_ipa/Cargo.toml b/scripts/test_files/halo2_ipa/Cargo.toml deleted file mode 100644 index 1e4503fbd..000000000 --- a/scripts/test_files/halo2_ipa/Cargo.toml +++ /dev/null @@ -1,23 +0,0 @@ -[package] -name = "halo2_ipa" -version = "0.1.0" -edition = "2021" - -[dependencies] -bincode = "1.3.3" -halo2curves = { version = "0.6.0", default-features = false } -rand_core = { version = "0.6", default-features = false, features = ["getrandom"] } -halo2_backend = { git = "https://github.com/yetanotherco/yet-another-halo2-fork.git", rev = "a3a56819d9183ac0b11c8d0543c7673c4a4c71a6"} -halo2_proofs = { git = "https://github.com/yetanotherco/yet-another-halo2-fork.git", rev = "a3a56819d9183ac0b11c8d0543c7673c4a4c71a6"} -ff = "0.13" - -[dev-dependencies] -group = "0.13" -tracing = "0.1" -rand_chacha = "0.3" -rayon = "1.8" -assert_matches = "1.5" -gumdrop = "0.8" -proptest = "1" -dhat = "0.3.2" -serde_json = "1" \ No newline at end of file diff --git a/scripts/test_files/halo2_ipa/params.bin b/scripts/test_files/halo2_ipa/params.bin deleted file mode 100644 index 8a5ea17b6..000000000 Binary files a/scripts/test_files/halo2_ipa/params.bin and /dev/null differ diff --git a/scripts/test_files/halo2_ipa/proof.bin b/scripts/test_files/halo2_ipa/proof.bin deleted file mode 100644 index aa904c61c..000000000 Binary files a/scripts/test_files/halo2_ipa/proof.bin and /dev/null differ diff --git a/scripts/test_files/halo2_ipa/pub_input.bin b/scripts/test_files/halo2_ipa/pub_input.bin deleted file mode 100644 index 47873949f..000000000 --- a/scripts/test_files/halo2_ipa/pub_input.bin +++ /dev/null @@ -1 +0,0 @@ -ÛáÛIÍ?’º;dÔ#º! ê4”à˜Õ×¢ùº} / \ No newline at end of file diff --git a/scripts/test_files/halo2_ipa/src/main.rs b/scripts/test_files/halo2_ipa/src/main.rs deleted file mode 100644 index b5c81ea67..000000000 --- a/scripts/test_files/halo2_ipa/src/main.rs +++ /dev/null @@ -1,173 +0,0 @@ -use std::{fs::File, io::{BufWriter, Write}}; -use halo2_proofs::{ - circuit::{Layouter, SimpleFloorPlanner, Value}, - plonk::{ - create_proof, keygen_pk, keygen_vk_custom, Advice, Circuit, Column, - ConstraintSystem, ErrorFront, Fixed, Instance, write_params - }, - poly::{ - commitment::ParamsProver, - ipa::{ - commitment::{IPACommitmentScheme, ParamsIPA}, - multiopen::ProverIPA, - }, - commitment::Params, - Rotation, - }, - transcript::{ - Blake2bWrite, Challenge255, TranscriptWriterBuffer - }, - SerdeFormat, -}; -use halo2curves::bn256::{Fr, G1Affine}; -use rand_core::OsRng; -use ff::{Field, PrimeField}; - -// HALO2 Circuit Example -#[derive(Clone, Copy)] -struct StandardPlonkConfig { - a: Column, - b: Column, - c: Column, - q_a: Column, - q_b: Column, - q_c: Column, - q_ab: Column, - constant: Column, - #[allow(dead_code)] - instance: Column, -} - -impl StandardPlonkConfig { - fn configure(meta: &mut ConstraintSystem) -> Self { - let [a, b, c] = [(); 3].map(|_| meta.advice_column()); - let [q_a, q_b, q_c, q_ab, constant] = [(); 5].map(|_| meta.fixed_column()); - let instance = meta.instance_column(); - - [a, b, c].map(|column| meta.enable_equality(column)); - - meta.create_gate( - "q_a·a + q_b·b + q_c·c + q_ab·a·b + constant + instance = 0", - |meta| { - let [a, b, c] = [a, b, c].map(|column| meta.query_advice(column, Rotation::cur())); - let [q_a, q_b, q_c, q_ab, constant] = [q_a, q_b, q_c, q_ab, constant] - .map(|column| meta.query_fixed(column, Rotation::cur())); - let instance = meta.query_instance(instance, Rotation::cur()); - Some( - q_a * a.clone() - + q_b * b.clone() - + q_c * c - + q_ab * a * b - + constant - + instance, - ) - }, - ); - - StandardPlonkConfig { - a, - b, - c, - q_a, - q_b, - q_c, - q_ab, - constant, - instance, - } - } -} - -#[derive(Clone, Default)] -struct StandardPlonk(Fr); - -impl Circuit for StandardPlonk { - type Config = StandardPlonkConfig; - type FloorPlanner = SimpleFloorPlanner; - - fn without_witnesses(&self) -> Self { - Self::default() - } - - fn configure(meta: &mut ConstraintSystem) -> Self::Config { - StandardPlonkConfig::configure(meta) - } - - fn synthesize( - &self, - config: Self::Config, - mut layouter: impl Layouter, - ) -> Result<(), ErrorFront> { - layouter.assign_region( - || "", - |mut region| { - region.assign_advice(|| "", config.a, 0, || Value::known(self.0))?; - region.assign_fixed(|| "", config.q_a, 0, || Value::known(-Fr::one()))?; - - region.assign_advice(|| "", config.a, 1, || Value::known(-Fr::from(5u64)))?; - for (idx, column) in (1..).zip([ - config.q_a, - config.q_b, - config.q_c, - config.q_ab, - config.constant, - ]) { - region.assign_fixed(|| "", column, 1, || Value::known(Fr::from(idx as u64)))?; - } - - let a = region.assign_advice(|| "", config.a, 2, || Value::known(Fr::one()))?; - a.copy_advice(|| "", &mut region, config.b, 3)?; - a.copy_advice(|| "", &mut region, config.c, 4)?; - Ok(()) - }, - ) - } -} - -fn main() { - let k = 4; - let circuit = StandardPlonk(Fr::random(OsRng)); - let params = ParamsIPA::::new(k); - let compress_selectors = true; - let vk = keygen_vk_custom(¶ms, &circuit, compress_selectors).expect("vk should not fail"); - let cs = vk.clone().cs; - let pk = keygen_pk(¶ms, vk.clone(), &circuit).expect("pk should not fail"); - - let instances = vec![vec![circuit.0]]; - let mut transcript = Blake2bWrite::<_, _, Challenge255<_>>::init(vec![]); - create_proof::< - IPACommitmentScheme, - ProverIPA, - Challenge255, - _, - Blake2bWrite, G1Affine, Challenge255<_>>, - _, - >( - ¶ms, - &pk, - &[circuit.clone()], - &[instances.clone()], - OsRng, - &mut transcript, - ) - .expect("prover should not fail"); - let proof = transcript.finalize(); - - //write proof - std::fs::write("proof.bin", &proof[..]) - .expect("should succeed to write new proof"); - - //write public inputs - let f = File::create("pub_input.bin").unwrap(); - let mut writer = BufWriter::new(f); - instances.to_vec().into_iter().flatten().for_each(|fp| { writer.write(&fp.to_repr()).unwrap(); }); - writer.flush().unwrap(); - - let mut vk_buf = Vec::new(); - vk.write(&mut vk_buf, SerdeFormat::RawBytes).unwrap(); - - let mut ipa_params_buf = Vec::new(); - params.write(&mut ipa_params_buf).unwrap(); - - write_params(&ipa_params_buf, cs, &vk_buf, "params.bin").unwrap(); -} diff --git a/scripts/test_files/halo2_kzg/Cargo.lock b/scripts/test_files/halo2_kzg/Cargo.lock deleted file mode 100644 index 6f1e87c5c..000000000 --- a/scripts/test_files/halo2_kzg/Cargo.lock +++ /dev/null @@ -1,1055 +0,0 @@ -# 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 = "arrayref" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" - -[[package]] -name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "assert_matches" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" - -[[package]] -name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[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 = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[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 = "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 = "blake2b_simd" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "block-padding", - "generic-array", -] - -[[package]] -name = "block-padding" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" - -[[package]] -name = "cc" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaff6f8ce506b9773fa786672d63fc7a191ffea1be33f72bbd4aeacefca9ffc8" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "constant_time_eq" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" - -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - -[[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-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - -[[package]] -name = "dhat" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cd11d84628e233de0ce467de10b8633f4ddaecafadefc86e13b84b8739b827" -dependencies = [ - "backtrace", - "lazy_static", - "mintex", - "parking_lot", - "rustc-hash", - "serde", - "serde_json", - "thousands", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "either" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" - -[[package]] -name = "errno" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" -dependencies = [ - "libc", - "windows-sys", -] - -[[package]] -name = "fastrand" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "bitvec", - "rand_core", - "subtle", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" - -[[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 = "gumdrop" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc700f989d2f6f0248546222d9b4258f5b02a171a431f8285a81c08142629e3" -dependencies = [ - "gumdrop_derive", -] - -[[package]] -name = "gumdrop_derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "729f9bd3449d77e7831a18abfb7ba2f99ee813dfd15b8c2167c9a54ba20aa99d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "halo2_backend" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=a3a56819d9183ac0b11c8d0543c7673c4a4c71a6#a3a56819d9183ac0b11c8d0543c7673c4a4c71a6" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "halo2_middleware", - "halo2curves", - "rand_chacha", - "rand_core", - "rayon", - "serde", - "sha3", - "tracing", -] - -[[package]] -name = "halo2_frontend" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=a3a56819d9183ac0b11c8d0543c7673c4a4c71a6#a3a56819d9183ac0b11c8d0543c7673c4a4c71a6" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "halo2_middleware", - "halo2curves", - "tracing", -] - -[[package]] -name = "halo2_kzg" -version = "0.1.0" -dependencies = [ - "assert_matches", - "bincode", - "dhat", - "ff", - "group", - "gumdrop", - "halo2_backend", - "halo2_proofs", - "halo2curves", - "proptest", - "rand_chacha", - "rand_core", - "rayon", - "serde_json", - "tracing", -] - -[[package]] -name = "halo2_middleware" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=a3a56819d9183ac0b11c8d0543c7673c4a4c71a6#a3a56819d9183ac0b11c8d0543c7673c4a4c71a6" -dependencies = [ - "ff", - "halo2curves", - "rayon", - "serde", -] - -[[package]] -name = "halo2_proofs" -version = "0.3.0" -source = "git+https://github.com/yetanotherco/yet-another-halo2-fork.git?rev=a3a56819d9183ac0b11c8d0543c7673c4a4c71a6#a3a56819d9183ac0b11c8d0543c7673c4a4c71a6" -dependencies = [ - "bincode", - "group", - "halo2_backend", - "halo2_frontend", - "halo2_middleware", - "halo2curves", - "rand_core", - "serde", -] - -[[package]] -name = "halo2curves" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db81d01d0bbfec9f624d7590fc6929ee2537a64ec1e080d8f8c9e2d2da291405" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "hex", - "lazy_static", - "num-bigint", - "num-traits", - "pairing", - "pasta_curves", - "paste", - "rand", - "rand_core", - "rayon", - "serde", - "serde_arrays", - "static_assertions", - "subtle", -] - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin", -] - -[[package]] -name = "libc" -version = "0.2.155" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" - -[[package]] -name = "libm" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" - -[[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", -] - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "miniz_oxide" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" -dependencies = [ - "adler", -] - -[[package]] -name = "mintex" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bec4598fddb13cc7b528819e697852653252b760f1228b7642679bf2ff2cd07" - -[[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", -] - -[[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-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "object" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - -[[package]] -name = "pairing" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" -dependencies = [ - "group", -] - -[[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", -] - -[[package]] -name = "pasta_curves" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "hex", - "lazy_static", - "rand", - "serde", - "static_assertions", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pin-project-lite" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[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 = "proptest" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags", - "lazy_static", - "num-traits", - "rand", - "rand_chacha", - "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", - "unarray", -] - -[[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 = "redox_syscall" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" -dependencies = [ - "bitflags", -] - -[[package]] -name = "regex-syntax" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" - -[[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 = "rustix" -version = "0.38.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys", -] - -[[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 = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "serde" -version = "1.0.204" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_arrays" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38636132857f68ec3d5f3eb121166d2af33cb55174c4d5ff645db6165cbef0fd" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.204" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.70", -] - -[[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 = "sha3" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" -dependencies = [ - "block-buffer", - "digest", - "keccak", - "opaque-debug", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[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.70" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0209b68b3613b093e0ec905354eccaedcfe83b8cb37cbdeae64026c3064c16" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" -dependencies = [ - "cfg-if", - "fastrand", - "rustix", - "windows-sys", -] - -[[package]] -name = "thousands" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "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.70", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[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 = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] diff --git a/scripts/test_files/halo2_kzg/Cargo.toml b/scripts/test_files/halo2_kzg/Cargo.toml deleted file mode 100644 index 973e5164c..000000000 --- a/scripts/test_files/halo2_kzg/Cargo.toml +++ /dev/null @@ -1,23 +0,0 @@ -[package] -name = "halo2_kzg" -version = "0.1.0" -edition = "2021" - -[dependencies] -bincode = "1.3.3" -halo2curves = { version = "0.6.0", default-features = false } -rand_core = { version = "0.6", default-features = false, features = ["getrandom"] } -halo2_backend = { git = "https://github.com/yetanotherco/yet-another-halo2-fork.git", rev = "a3a56819d9183ac0b11c8d0543c7673c4a4c71a6"} -halo2_proofs = { git = "https://github.com/yetanotherco/yet-another-halo2-fork.git", rev = "a3a56819d9183ac0b11c8d0543c7673c4a4c71a6"} -ff = "0.13" - -[dev-dependencies] -group = "0.13" -tracing = "0.1" -rand_chacha = "0.3" -rayon = "1.8" -assert_matches = "1.5" -gumdrop = "0.8" -proptest = "1" -dhat = "0.3.2" -serde_json = "1" \ No newline at end of file diff --git a/scripts/test_files/halo2_kzg/params.bin b/scripts/test_files/halo2_kzg/params.bin deleted file mode 100644 index 2f8b17b53..000000000 Binary files a/scripts/test_files/halo2_kzg/params.bin and /dev/null differ diff --git a/scripts/test_files/halo2_kzg/proof.bin b/scripts/test_files/halo2_kzg/proof.bin deleted file mode 100644 index 5baa50604..000000000 Binary files a/scripts/test_files/halo2_kzg/proof.bin and /dev/null differ diff --git a/scripts/test_files/halo2_kzg/pub_input.bin b/scripts/test_files/halo2_kzg/pub_input.bin deleted file mode 100644 index 304717c77..000000000 --- a/scripts/test_files/halo2_kzg/pub_input.bin +++ /dev/null @@ -1 +0,0 @@ -œ»/žé^É\sx+¾ÐDÒÁ*Jo¾ÒRo€ôœªs \ No newline at end of file diff --git a/scripts/test_files/halo2_kzg/src/main.rs b/scripts/test_files/halo2_kzg/src/main.rs deleted file mode 100644 index 2aa1547d5..000000000 --- a/scripts/test_files/halo2_kzg/src/main.rs +++ /dev/null @@ -1,192 +0,0 @@ -use std::{fs::File, io::{BufWriter, Write}}; -use halo2_proofs::{ - circuit::{Layouter, SimpleFloorPlanner, Value}, - plonk::{ - create_proof, keygen_pk, keygen_vk_custom, Advice, Circuit, Column, - ConstraintSystem, ErrorFront, Fixed, Instance, write_params - }, - poly::{ - kzg::{ - commitment::{KZGCommitmentScheme, ParamsKZG}, - multiopen::ProverSHPLONK, - }, - commitment::Params, - Rotation, - }, - transcript::{ - Blake2bWrite, Challenge255, TranscriptWriterBuffer - }, - SerdeFormat, -}; -use halo2curves::bn256::{Bn256, Fr, G1Affine}; -use rand_core::OsRng; -use ff::{Field, PrimeField}; - -// HALO2 Circuit Example -#[derive(Clone, Copy)] -struct StandardPlonkConfig { - a: Column, - b: Column, - c: Column, - q_a: Column, - q_b: Column, - q_c: Column, - q_ab: Column, - constant: Column, - #[allow(dead_code)] - instance: Column, -} - -impl StandardPlonkConfig { - fn configure(meta: &mut ConstraintSystem) -> Self { - let [a, b, c] = [(); 3].map(|_| meta.advice_column()); - let [q_a, q_b, q_c, q_ab, constant] = [(); 5].map(|_| meta.fixed_column()); - let instance = meta.instance_column(); - - [a, b, c].map(|column| meta.enable_equality(column)); - - meta.create_gate( - "q_a·a + q_b·b + q_c·c + q_ab·a·b + constant + instance = 0", - |meta| { - let [a, b, c] = [a, b, c].map(|column| meta.query_advice(column, Rotation::cur())); - let [q_a, q_b, q_c, q_ab, constant] = [q_a, q_b, q_c, q_ab, constant] - .map(|column| meta.query_fixed(column, Rotation::cur())); - let instance = meta.query_instance(instance, Rotation::cur()); - Some( - q_a * a.clone() - + q_b * b.clone() - + q_c * c - + q_ab * a * b - + constant - + instance, - ) - }, - ); - - StandardPlonkConfig { - a, - b, - c, - q_a, - q_b, - q_c, - q_ab, - constant, - instance, - } - } -} - -#[derive(Clone, Default)] -struct StandardPlonk(Fr); - -impl Circuit for StandardPlonk { - type Config = StandardPlonkConfig; - type FloorPlanner = SimpleFloorPlanner; - - fn without_witnesses(&self) -> Self { - Self::default() - } - - fn configure(meta: &mut ConstraintSystem) -> Self::Config { - StandardPlonkConfig::configure(meta) - } - - fn synthesize( - &self, - config: Self::Config, - mut layouter: impl Layouter, - ) -> Result<(), ErrorFront> { - layouter.assign_region( - || "", - |mut region| { - region.assign_advice(|| "", config.a, 0, || Value::known(self.0))?; - region.assign_fixed(|| "", config.q_a, 0, || Value::known(-Fr::one()))?; - - region.assign_advice(|| "", config.a, 1, || Value::known(-Fr::from(5u64)))?; - for (idx, column) in (1..).zip([ - config.q_a, - config.q_b, - config.q_c, - config.q_ab, - config.constant, - ]) { - region.assign_fixed(|| "", column, 1, || Value::known(Fr::from(idx as u64)))?; - } - - let a = region.assign_advice(|| "", config.a, 2, || Value::known(Fr::one()))?; - a.copy_advice(|| "", &mut region, config.b, 3)?; - a.copy_advice(|| "", &mut region, config.c, 4)?; - Ok(()) - }, - ) - } -} - -use halo2_proofs::poly::kzg::strategy::SingleStrategy; -use halo2_proofs::poly::kzg::multiopen::VerifierSHPLONK; -use halo2_proofs::transcript::Blake2bRead; -use halo2_proofs::plonk::verify_proof; -use halo2_proofs::transcript::TranscriptReadBuffer; -fn main() { - let k = 4; - let circuit = StandardPlonk(Fr::random(OsRng)); - let params = ParamsKZG::::setup(k, OsRng); - let compress_selectors = true; - let vk = keygen_vk_custom(¶ms, &circuit, compress_selectors).expect("vk should not fail"); - let pk = keygen_pk(¶ms, vk.clone(), &circuit).expect("pk should not fail"); - let instances = vec![vec![circuit.0]]; - let cs = vk.clone().cs; - - let mut transcript = Blake2bWrite::<_, _, Challenge255>::init(Vec::new()); - create_proof::< - KZGCommitmentScheme, - ProverSHPLONK<'_, Bn256>, - Challenge255, - _, - Blake2bWrite, G1Affine, Challenge255>, - _, - >( - ¶ms, - &pk, - &[circuit], - &[instances.clone()], - OsRng, - &mut transcript, - ) - .expect("prover should not fail"); - - let proof = transcript.finalize(); - let vk_params = params.verifier_params(); - let strategy = SingleStrategy::new(&vk_params); - let mut transcript = Blake2bRead::<_, _, Challenge255<_>>::init(&proof[..]); - - verify_proof::< - KZGCommitmentScheme, - VerifierSHPLONK, - Challenge255, - Blake2bRead<&[u8], G1Affine, Challenge255>, - SingleStrategy, - >( - &vk_params, &vk, strategy, &[instances.clone()], &mut transcript - ) - .expect("verifier should not fail"); - - //write proof - std::fs::write("proof.bin", &proof[..]) - .expect("should succeed to write new proof"); - - //write public inputs - let f = File::create("pub_input.bin").unwrap(); - let mut writer = BufWriter::new(f); - instances.to_vec().into_iter().flatten().for_each(|fp| { writer.write(&fp.to_repr()).unwrap(); }); - writer.flush().unwrap(); - - let mut vk_buf = Vec::new(); - vk.write(&mut vk_buf, SerdeFormat::RawBytes).unwrap(); - - let mut kzg_params_buf = Vec::new(); - vk_params.write(&mut kzg_params_buf).unwrap(); - - write_params(&kzg_params_buf, cs, &vk_buf, "params.bin").unwrap(); -} diff --git a/telemetry-docker-compose.yaml b/telemetry-docker-compose.yaml new file mode 100644 index 000000000..e3885df78 --- /dev/null +++ b/telemetry-docker-compose.yaml @@ -0,0 +1,15 @@ +version: "3" + +services: + otel-collector: + image: otel/opentelemetry-collector-contrib:0.107.0 + command: ["--config=/etc/otel-collector.yaml"] + volumes: + - ./otel-collector.yaml:/etc/otel-collector.yaml + ports: + - "4317:4317" + + jaeger: + image: jaegertracing/all-in-one:1.60 + ports: + - "16686:16686" \ No newline at end of file diff --git a/telemetry_api/.env.dev b/telemetry_api/.env.dev new file mode 100644 index 000000000..1a33ddc8e --- /dev/null +++ b/telemetry_api/.env.dev @@ -0,0 +1,3 @@ +ALIGNED_CONFIG_FILE="../contracts/script/output/devnet/alignedlayer_deployment_output.json" +OPERATOR_FETCHER_WAIT_TIME_MS=5000 +ENVIRONMENT=devnet diff --git a/telemetry_api/.formatter.exs b/telemetry_api/.formatter.exs new file mode 100644 index 000000000..5971023f6 --- /dev/null +++ b/telemetry_api/.formatter.exs @@ -0,0 +1,5 @@ +[ + import_deps: [:ecto, :ecto_sql, :phoenix], + subdirectories: ["priv/*/migrations"], + inputs: ["*.{ex,exs}", "{config,lib,test}/**/*.{ex,exs}", "priv/*/seeds.exs"] +] diff --git a/telemetry_api/.gitignore b/telemetry_api/.gitignore new file mode 100644 index 000000000..930813079 --- /dev/null +++ b/telemetry_api/.gitignore @@ -0,0 +1,29 @@ +# The directory Mix will write compiled artifacts to. +/_build/ + +# If you run "mix test --cover", coverage assets end up here. +/cover/ + +# The directory Mix downloads your dependencies sources to. +/deps/ + +# Where 3rd-party dependencies like ExDoc output generated docs. +/doc/ + +# Ignore .fetch files in case you like to edit your project deps locally. +/.fetch + +# If the VM crashes, it generates a dump, let's ignore it too. +erl_crash.dump + +# Also ignore archive artifacts (built via "mix archive.build"). +*.ez + +# Temporary files, for example, from tests. +/tmp/ + +# Ignore package tarball (built via "mix hex.build"). +telemetry_api-*.tar + +# Elixir lsp server +.elixir_ls diff --git a/telemetry_api/Dockerfile b/telemetry_api/Dockerfile new file mode 100644 index 000000000..0cf033f72 --- /dev/null +++ b/telemetry_api/Dockerfile @@ -0,0 +1,10 @@ +# https://hub.docker.com/_/postgres +FROM postgres:16.3 + +# Environment variables +ENV POSTGRES_USER=telemetry_user +ENV POSTGRES_PASSWORD=telemetry_pass +ENV POSTGRES_DB=telemetry_db + +# Expose the default PostgreSQL port +EXPOSE 5432 diff --git a/telemetry_api/README.md b/telemetry_api/README.md new file mode 100644 index 000000000..3640c501e --- /dev/null +++ b/telemetry_api/README.md @@ -0,0 +1,63 @@ +# TelemetryApi + +## Database Setup + +To create a Postgres container and run it: + +```shell +make telemetry_run_db +``` + +This will create and run the container using the credentials set in `Dockerfile` + +> [!CAUTION] +> Do not use default credentials in Production environments. + +### Delete database + +If you want to delete the container: + +```shell +make telemetry_remove_db_container +``` + +This will remove the container but will keep the storage + +If you also want to delete the storage run: + +```shell +make telemetry_clean_db +``` + +## Run Server + +First you need to manually set the `telemetry_api/.env` file. + +To use `telemetry_api/.env.dev`, run: + +```shell +make telemetry_create_env +``` + +To start your Phoenix server: + +```shell +make telemetry_start +``` + +On startup, it will run ecto migrations. + + * Run `mix setup` to install and setup dependencies + * Start Phoenix endpoint with `mix phx.server` or inside IEx with `iex -S mix phx.server` + +Now you can visit [`localhost:4000`](http://localhost:4000) from your browser. + +## Database Migrations + +This API uses Ecto for migrations. To apply migrations, run: + +```shell +make telemetry_ecto_migrate +``` + + diff --git a/telemetry_api/config/config.exs b/telemetry_api/config/config.exs new file mode 100644 index 000000000..fc7931ac5 --- /dev/null +++ b/telemetry_api/config/config.exs @@ -0,0 +1,45 @@ +# This file is responsible for configuring your application +# and its dependencies with the aid of the Config module. +# +# This configuration file is loaded before any dependency and +# is restricted to this project. + +# General application configuration +import Config + +config :telemetry_api, + ecto_repos: [TelemetryApi.Repo], + generators: [timestamp_type: :utc_datetime] + +# Configures the endpoint +config :telemetry_api, TelemetryApiWeb.Endpoint, + url: [host: "localhost"], + adapter: Bandit.PhoenixAdapter, + render_errors: [ + formats: [json: TelemetryApiWeb.ErrorJSON], + layout: false + ], + pubsub_server: TelemetryApi.PubSub, + live_view: [signing_salt: "eQaI7lMW"] + +# Configures Elixir's Logger +config :logger, :console, + format: "$time $metadata[$level] $message\n", + metadata: [:request_id] + +# Use Jason for JSON parsing in Phoenix +config :phoenix, :json_library, Jason + +# https://opentelemetry.io/docs/languages/erlang/exporters/#setting-up-the-collector +config :opentelemetry_exporter, + otlp_protocol: :grpc, + otlp_endpoint: "http://localhost:4317" + +config :opentelemetry, + resource: %{service: %{name: "telemetry_api"}}, + span_processor: :batch, + traces_exporter: :otlp + +# Import environment specific config. This must remain at the bottom +# of this file so it overrides the configuration defined above. +import_config "#{config_env()}.exs" diff --git a/telemetry_api/config/dev.exs b/telemetry_api/config/dev.exs new file mode 100644 index 000000000..9f9ae0ad1 --- /dev/null +++ b/telemetry_api/config/dev.exs @@ -0,0 +1,70 @@ +import Config + +# Configure your database +config :telemetry_api, TelemetryApi.Repo, + username: "telemetry_user", + password: "telemetry_pass", + database: "telemetry_db", + hostname: "localhost", + port: 5434, + stacktrace: true, + show_sensitive_data_on_connection_error: true, + pool_size: 10 + +# For development, we disable any cache and enable +# debugging and code reloading. +# +# The watchers configuration can be used to run external +# watchers to your application. For example, we can use it +# to bundle .js and .css sources. +config :telemetry_api, TelemetryApiWeb.Endpoint, + # Binding to loopback ipv4 address prevents access from other machines. + # Change to `ip: {0, 0, 0, 0}` to allow access from other machines. + http: [ip: {127, 0, 0, 1}, port: 4001], + check_origin: false, + code_reloader: true, + debug_errors: true, + secret_key_base: "SKxKWZhd8cfUXMUqskUHvegw8P46kkfwIYWTW86tsqn+t6M2S1HUFjTqgVWAkvX0", + watchers: [] + +# ## SSL Support +# +# In order to use HTTPS in development, a self-signed +# certificate can be generated by running the following +# Mix task: +# +# mix phx.gen.cert +# +# Run `mix help phx.gen.cert` for more information. +# +# The `http:` config above can be replaced with: +# +# https: [ +# port: 4001, +# cipher_suite: :strong, +# keyfile: "priv/cert/selfsigned_key.pem", +# certfile: "priv/cert/selfsigned.pem" +# ], +# +# If desired, both `http:` and `https:` keys can be +# configured to run both http and https servers on +# different ports. + +# Enable dev routes for dashboard and mailbox +# config :telemetry_api, dev_routes: true + +# Do not include metadata nor timestamps in development logs +config :logger, :console, format: "[$level] $message\n" + +# Set a higher stacktrace during development. Avoid configuring such +# in production as building large stacktraces may be expensive. +config :phoenix, :stacktrace_depth, 20 + +# Initialize plugs at runtime for faster development compilation +config :phoenix, :plug_init_mode, :runtime + +# Configure ethereumex url +config :ethereumex, url: "http://localhost:8545" + +# For development, we use the stdout exporter to ensure everything is working properly +# config :opentelemetry, traces_exporter: {:otel_exporter_stdout, []} diff --git a/telemetry_api/config/prod.exs b/telemetry_api/config/prod.exs new file mode 100644 index 000000000..1fe2d9e85 --- /dev/null +++ b/telemetry_api/config/prod.exs @@ -0,0 +1,7 @@ +import Config + +# Do not print debug messages in production +config :logger, level: :info + +# Runtime production configuration, including reading +# of environment variables, is done on config/runtime.exs. diff --git a/telemetry_api/config/runtime.exs b/telemetry_api/config/runtime.exs new file mode 100644 index 000000000..005e68aad --- /dev/null +++ b/telemetry_api/config/runtime.exs @@ -0,0 +1,117 @@ +import Config + +# config/runtime.exs is executed for all environments, including +# during releases. It is executed after compilation and before the +# system starts, so it is typically used to load production configuration +# and secrets from environment variables or elsewhere. Do not define +# any compile-time configuration in here, as it won't be applied. +# The block below contains prod specific runtime configuration. + +# ## Using releases +# +# If you use `mix release`, you need to explicitly enable the server +# by passing the PHX_SERVER=true when you start it: +# +# PHX_SERVER=true bin/telemetry_api start +# +# Alternatively, you can use `mix phx.gen.release` to generate a `bin/server` +# script that automatically sets the env var above. +if System.get_env("PHX_SERVER") do + config :telemetry_api, TelemetryApiWeb.Endpoint, server: true +end + +if config_env() == :prod do + database_url = + System.get_env("DATABASE_URL") || + raise """ + environment variable DATABASE_URL is missing. + For example: ecto://USER:PASS@HOST/DATABASE + """ + + maybe_ipv6 = if System.get_env("ECTO_IPV6") in ~w(true 1), do: [:inet6], else: [] + + config :telemetry_api, TelemetryApi.Repo, + # ssl: true, + url: database_url, + pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10"), + socket_options: maybe_ipv6 + + # The secret key base is used to sign/encrypt cookies and other secrets. + # A default value is used in config/dev.exs and config/test.exs but you + # want to use a different value for prod and you most likely don't want + # to check this value into version control, so we use an environment + # variable instead. + secret_key_base = + System.get_env("SECRET_KEY_BASE") || + raise """ + environment variable SECRET_KEY_BASE is missing. + You can generate one by calling: mix phx.gen.secret + """ + + host = System.get_env("PHX_HOST") || "example.com" + port = String.to_integer(System.get_env("PORT") || "4001") + + config :telemetry_api, :dns_cluster_query, System.get_env("DNS_CLUSTER_QUERY") + + config :telemetry_api, TelemetryApiWeb.Endpoint, + url: [host: host, port: 443, scheme: "https"], + http: [ + # Enable IPv6 and bind on all interfaces. + # Set it to {0, 0, 0, 0, 0, 0, 0, 1} for local network only access. + # See the documentation on https://hexdocs.pm/bandit/Bandit.html#t:options/0 + # for details about using IPv6 vs IPv4 and loopback vs public addresses. + ip: {0, 0, 0, 0, 0, 0, 0, 0}, + port: port + ], + secret_key_base: secret_key_base + + # ## Ethereum RPC calls configuration + + # Node RPC URL + rpc_url = System.get_env("RPC_URL") || + raise """ + environment variable RPC_URL is missing. + """ + + # Configure ethereumex url + config :ethereumex, url: rpc_url + + # Aligned configuration file path + System.get_env("ALIGNED_CONFIG_FILE") || + raise """ + environment variable ALIGNED_CONFIG_FILE is missing. + """ + + + # ## SSL Support + # + # To get SSL working, you will need to add the `https` key + # to your endpoint configuration: + # + # config :telemetry_api, TelemetryApiWeb.Endpoint, + # https: [ + # ..., + # port: 443, + # cipher_suite: :strong, + # keyfile: System.get_env("SOME_APP_SSL_KEY_PATH"), + # certfile: System.get_env("SOME_APP_SSL_CERT_PATH") + # ] + # + # The `cipher_suite` is set to `:strong` to support only the + # latest and more secure SSL ciphers. This means old browsers + # and clients may not be supported. You can set it to + # `:compatible` for wider support. + # + # `:keyfile` and `:certfile` expect an absolute path to the key + # and cert in disk or a relative path inside priv, for example + # "priv/ssl/server.key". For all supported SSL configuration + # options, see https://hexdocs.pm/plug/Plug.SSL.html#configure/1 + # + # We also recommend setting `force_ssl` in your config/prod.exs, + # ensuring no data is ever sent via http, always redirecting to https: + # + # config :telemetry_api, TelemetryApiWeb.Endpoint, + # force_ssl: [hsts: true] + # + # Check `Plug.SSL` for all available options in `force_ssl`. +end diff --git a/telemetry_api/config/test.exs b/telemetry_api/config/test.exs new file mode 100644 index 000000000..5916d25d5 --- /dev/null +++ b/telemetry_api/config/test.exs @@ -0,0 +1,27 @@ +import Config + +# Configure your database +# +# The MIX_TEST_PARTITION environment variable can be used +# to provide built-in test partitioning in CI environment. +# Run `mix help test` for more information. +config :telemetry_api, TelemetryApi.Repo, + username: "postgres", + password: "postgres", + hostname: "localhost", + database: "telemetry_api_test#{System.get_env("MIX_TEST_PARTITION")}", + pool: Ecto.Adapters.SQL.Sandbox, + pool_size: System.schedulers_online() * 2 + +# We don't run a server during test. If one is required, +# you can enable the server option below. +config :telemetry_api, TelemetryApiWeb.Endpoint, + http: [ip: {127, 0, 0, 1}, port: 4002], + secret_key_base: "oxlWGXR4lI6jsDZfizxmFwhPFn9vjc6rWqsdAnu5rlTmluTstw3/6YBkB5OGKi5m", + server: false + +# Print only warnings and errors during test +config :logger, level: :warning + +# Initialize plugs at runtime for faster test compilation +config :phoenix, :plug_init_mode, :runtime diff --git a/telemetry_api/ecto_setup_db.sh b/telemetry_api/ecto_setup_db.sh new file mode 100755 index 000000000..aebd647f0 --- /dev/null +++ b/telemetry_api/ecto_setup_db.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +source .env + +# Add new environment variables here +env_vars=( + "ENVIRONMENT" + "ALIGNED_CONFIG_FILE" + "OPERATOR_FETCHER_WAIT_TIME_MS" +) + +for var in "${env_vars[@]}"; do + export "$var=${!var}" +done + +mix deps.get + +mix compile --force #force recompile to get the latest .env values + +mix ecto.create +mix ecto.migrate diff --git a/telemetry_api/lib/telemetry_api.ex b/telemetry_api/lib/telemetry_api.ex new file mode 100644 index 000000000..6d8157c74 --- /dev/null +++ b/telemetry_api/lib/telemetry_api.ex @@ -0,0 +1,9 @@ +defmodule TelemetryApi do + @moduledoc """ + TelemetryApi keeps the contexts that define your domain + and business logic. + + Contexts are also responsible for managing your data, regardless + if it comes from the database, an external API or others. + """ +end diff --git a/telemetry_api/lib/telemetry_api/application.ex b/telemetry_api/lib/telemetry_api/application.ex new file mode 100644 index 000000000..a49c52c19 --- /dev/null +++ b/telemetry_api/lib/telemetry_api/application.ex @@ -0,0 +1,37 @@ +defmodule TelemetryApi.Application do + # See https://hexdocs.pm/elixir/Application.html + # for more information on OTP Applications + @moduledoc false + + use Application + + @impl true + def start(_type, _args) do + children = [ + TraceStore, + TelemetryApiWeb.Telemetry, + TelemetryApi.Repo, + {DNSCluster, query: Application.get_env(:telemetry_api, :dns_cluster_query) || :ignore}, + {Phoenix.PubSub, name: TelemetryApi.PubSub}, + # Start a worker by calling: TelemetryApi.Worker.start_link(arg) + # {TelemetryApi.Worker, arg}, + # Start to serve requests, typically the last entry + TelemetryApiWeb.Endpoint, + TelemetryApi.Periodic.OperatorFetcher + ] + + # See https://hexdocs.pm/elixir/Supervisor.html + # for other strategies and supported options + opts = [strategy: :one_for_one, name: TelemetryApi.Supervisor] + + Supervisor.start_link(children, opts) + end + + # Tell Phoenix to update the endpoint configuration + # whenever the application is updated. + @impl true + def config_change(changed, _new, removed) do + TelemetryApiWeb.Endpoint.config_change(changed, removed) + :ok + end +end diff --git a/telemetry_api/lib/telemetry_api/contract_managers/delegation_manager.ex b/telemetry_api/lib/telemetry_api/contract_managers/delegation_manager.ex new file mode 100644 index 000000000..920c7a8f5 --- /dev/null +++ b/telemetry_api/lib/telemetry_api/contract_managers/delegation_manager.ex @@ -0,0 +1,55 @@ +defmodule TelemetryApi.ContractManagers.DelegationManager do + alias TelemetryApi.ContractManagers.DelegationManager + require Logger + + @environment System.get_env("ENVIRONMENT") + + @first_block (case @environment do + "devnet" -> 0 + "holesky" -> 1_210_000 + "mainnet" -> 20_020_000 + _ -> raise("Invalid environment") + end) + + eigenlayer_output_file_path = + "../contracts/script/output/#{@environment}/eigenlayer_deployment_output.json" + + {status, config_json_string} = File.read(eigenlayer_output_file_path) + + case status do + :ok -> + Logger.debug("Eigenlayer deployment file read successfully") + + :error -> + raise("Config file not read successfully") + end + + @contract_address Jason.decode!(config_json_string) + |> Map.get("addresses") + |> Map.get("delegationManager") + + use Ethers.Contract, + abi_file: "priv/abi/DelegationManager.json", + default_address: @contract_address + + def get_contract_address() do + @contract_address + end + + def get_operator_url(operator_address) do + DelegationManager.EventFilters.operator_metadata_uri_updated(operator_address) + |> Ethers.get_logs(fromBlock: @first_block) + |> case do + {:ok, data} -> + # The head (hd) is the most recent entry + url = List.last(data).data |> hd() + {:ok, url} + + {:error, reason} -> + {:error, reason} + + other -> + {:error, "Unexpected response getting operator url: #{inspect(other)}"} + end + end +end diff --git a/telemetry_api/lib/telemetry_api/contract_managers/operator_state_retriever.ex b/telemetry_api/lib/telemetry_api/contract_managers/operator_state_retriever.ex new file mode 100644 index 000000000..a7ed9fbd6 --- /dev/null +++ b/telemetry_api/lib/telemetry_api/contract_managers/operator_state_retriever.ex @@ -0,0 +1,88 @@ +defmodule TelemetryApi.ContractManagers.OperatorStateRetriever do + require Logger + alias TelemetryApi.ContractManagers.OperatorStateRetriever + + @aligned_config_file System.get_env("ALIGNED_CONFIG_FILE") + + config_file_path = + case @aligned_config_file do + nil -> raise("ALIGNED_CONFIG_FILE not set in .env") + file -> file + end + + {status, config_json_string} = File.read(config_file_path) + + case status do + :ok -> + Logger.debug("Aligned deployment file read successfully") + + :error -> + raise("Config file not read successfully") + end + + @contract_address Jason.decode!(config_json_string) + |> Map.get("addresses") + |> Map.get("operatorStateRetriever") + + @registry_coordinator_address Jason.decode!(config_json_string) + |> Map.get("addresses") + |> Map.get("registryCoordinator") + |> String.trim_leading("0x") + |> Base.decode16!(case: :mixed) + + use Ethers.Contract, + abi_file: "priv/abi/OperatorStateRetriever.json", + default_address: @contract_address + + # -------- PUBLIC FUNCTIONS -------- + + def get_contract_address() do + @contract_address + end + + def get_operators() do + with {:ok, block_number} <- Ethers.current_block_number(), + {:ok, operators_state} <- fetch_operators_state(block_number) do + parse_operators(operators_state) + else + {:error, %{reason: :econnrefused}} -> {:error, "Blockchain is not reachable"} + end + end + + # -------- PRIVATE FUNCTIONS -------- + + defp parse_operators(operators_state) do + operators = + operators_state + |> Enum.map(fn {address, id, stake} -> + id = "0x" <> Base.encode16(id, case: :lower) + address = address |> String.downcase() + + %{ + id: id, + address: address, + stake: Integer.to_string(stake) + } + end) + + {:ok, operators} + end + + defp fetch_operators_state(block_number) do + quorum_numbers = <<0>> + + response = + OperatorStateRetriever.get_operator_state( + @registry_coordinator_address, + quorum_numbers, + block_number + ) + |> Ethers.call() + + case response do + {:ok, [operators | _]} -> {:ok, operators} + {:error, message} -> {:error, message} + _ -> {:error, "Bad formated data received from OperatorStateRetriever::getOperatorState"} + end + end +end diff --git a/telemetry_api/lib/telemetry_api/contract_managers/stake_registry.ex b/telemetry_api/lib/telemetry_api/contract_managers/stake_registry.ex new file mode 100644 index 000000000..edf893820 --- /dev/null +++ b/telemetry_api/lib/telemetry_api/contract_managers/stake_registry.ex @@ -0,0 +1,48 @@ +defmodule TelemetryApi.ContractManagers.StakeRegistry do + alias TelemetryApi.ContractManagers.StakeRegistry + + require Logger + + @aligned_config_file System.get_env("ALIGNED_CONFIG_FILE") + + config_file_path = + case @aligned_config_file do + nil -> raise("ALIGNED_CONFIG_FILE not set in .env") + file -> file + end + + {status, config_json_string} = File.read(config_file_path) + + case status do + :ok -> + Logger.debug("Aligned deployment file read successfully") + + :error -> + raise("Config file not read successfully") + end + + @stake_registry_address Jason.decode!(config_json_string) + |> Map.get("addresses") + |> Map.get("stakeRegistry") + + use Ethers.Contract, + abi_file: "priv/abi/IStakeRegistry.json", + default_address: @stake_registry_address + + @doc """ + Get the current total stake + We only use quorum 0 + + ## Examples + + iex> get_current_total_stake() + {:ok, 100} + + iex> get_current_total_stake() + {:error, "Error message"} + """ + def get_current_total_stake() do + StakeRegistry.get_current_total_stake(0) + |> Ethers.call() + end +end diff --git a/telemetry_api/lib/telemetry_api/operators.ex b/telemetry_api/lib/telemetry_api/operators.ex new file mode 100644 index 000000000..e5bcbe1a5 --- /dev/null +++ b/telemetry_api/lib/telemetry_api/operators.ex @@ -0,0 +1,191 @@ +defmodule TelemetryApi.Operators do + @moduledoc """ + The Operators context. + """ + + import Ecto.Query, warn: false + alias TelemetryApi.Repo + + alias TelemetryApi.Operators.Operator + alias TelemetryApi.ContractManagers.OperatorStateRetriever + alias TelemetryApi.ContractManagers.DelegationManager + + @doc """ + Returns the list of operators. + + ## Examples + + iex> list_operators() + [%Operator{}, ...] + + """ + def list_operators do + Repo.all(Operator) + end + + @doc """ + Gets a single operator by id or address. + + ## Examples + + iex> get_operator(%Operator{id: some_id}) + {:ok, %Operator{}} + + iex> get_operator(%Operator{address: some_address}) + {:ok, %Operator{}} + + iex> get_operator(%Operator{address: non_existent_address}) + {:error, :not_found, "Operator not found for address: non_existent_address"} + """ + def get_operator(%{address: address}) do + case Repo.get(Operator, address) do + nil -> + IO.inspect("Operator not found for address: #{address}") + {:error, :not_found, "Operator not found for address: #{address}"} + + operator -> + {:ok, operator} + end + end + + def get_operator(%{id: id}) do + query = from(o in Operator, where: o.id == ^id) + + case Repo.one(query) do + nil -> {:error, :not_found, "Operator not found for id: {id}"} + operator -> {:ok, operator} + end + end + + @doc """ + - Fetches the state of all operators from the RegistryCoordinator ({address, id, stake}). + - Fetches the metadata of all operators from the DelegationManager. + - Stores all data in the database. + + ## Examples + + iex> fetch_all_operators() + {:ok, %Ecto.Changeset{}} + + iex> fetch_all_operators() + {:error, string} + + """ + def fetch_all_operators() do + with {:ok, operators} <- OperatorStateRetriever.get_operators() do + Enum.map(operators, fn op_data -> + with {:ok, full_operator_data} <- add_operator_metadata(op_data) do + case Repo.get(Operator, op_data.address) do + nil -> %Operator{} + operator -> operator + end + |> Operator.changeset(full_operator_data) + |> Repo.insert_or_update() + end + end) + |> TelemetryApi.Utils.check_list_status("Error fetching operators metadata") + end + end + + # Adds operator metadata to received operator. + + ### Examples + + # iex> add_operator_metadata(operator) + # {:ok, operator_with_metadata} + # + # iex> add_operator_metadata(operator) + # {:error, string} + # + defp add_operator_metadata(op_data) do + with {:ok, url} <- DelegationManager.get_operator_url(op_data.address), + {:ok, metadata} <- TelemetryApi.Utils.fetch_json_data(url) do + operator = %{ + id: op_data.id, + address: op_data.address, + stake: op_data.stake, + name: Map.get(metadata, "name") + } + + {:ok, operator} + end + end + + @doc """ + Updates an operator's version. + + ## Examples + + iex> update_operator_version(%{field: value}) + {:ok, %Ecto.Changeset{}} + + iex> update_operator_version(%{field: bad_value}) + {:error, "Some status", "Some message"} + + """ + def update_operator_version(%{"version" => version, "signature" => signature}) do + with {:ok, address} <- SignatureVerifier.recover_address(version, signature) do + address = "0x" <> address + # We only want to allow changes on version + changes = %{ + version: version + } + + case Repo.get(Operator, address) do + nil -> + {:error, :bad_request, + "Provided address does not correspond to any registered operator"} + + operator -> + operator |> Operator.changeset(changes) |> Repo.insert_or_update() + end + end + end + + @doc """ + Updates a operator. + + ## Examples + + iex> update_operator(operator, %{field: new_value}) + {:ok, %Operator{}} + + iex> update_operator(operator, %{field: bad_value}) + {:error, %Ecto.Changeset{}} + + """ + def update_operator(%Operator{} = operator, attrs) do + operator + |> Operator.changeset(attrs) + |> Repo.update() + end + + @doc """ + Deletes a operator. + + ## Examples + + iex> delete_operator(operator) + {:ok, %Operator{}} + + iex> delete_operator(operator) + {:error, %Ecto.Changeset{}} + + """ + def delete_operator(%Operator{} = operator) do + Repo.delete(operator) + end + + @doc """ + Returns an `%Ecto.Changeset{}` for tracking operator changes. + + ## Examples + + iex> change_operator(operator) + %Ecto.Changeset{data: %Operator{}} + + """ + def change_operator(%Operator{} = operator, attrs \\ %{}) do + Operator.changeset(operator, attrs) + end +end diff --git a/telemetry_api/lib/telemetry_api/operators/operator.ex b/telemetry_api/lib/telemetry_api/operators/operator.ex new file mode 100644 index 000000000..6c2892d74 --- /dev/null +++ b/telemetry_api/lib/telemetry_api/operators/operator.ex @@ -0,0 +1,25 @@ +defmodule TelemetryApi.Operators.Operator do + use Ecto.Schema + import Ecto.Changeset + + @primary_key {:address, :string, []} + schema "operators" do + field :id, :string + field :stake, :string + field :name, :string + field :version, :string + + timestamps(type: :utc_datetime) + end + + @doc false + def changeset(operator, attrs) do + operator + |> cast(attrs, [:address, :id, :stake, :name, :version]) + |> validate_required([:address, :id, :name, :stake]) + end +end + +defimpl Phoenix.Param, for: TelemetryApi.Operators.Operator do + def to_param(%TelemetryApi.Operators.Operator{address: address}), do: address +end diff --git a/telemetry_api/lib/telemetry_api/periodic/operator_fetcher.ex b/telemetry_api/lib/telemetry_api/periodic/operator_fetcher.ex new file mode 100644 index 000000000..285e60ef1 --- /dev/null +++ b/telemetry_api/lib/telemetry_api/periodic/operator_fetcher.ex @@ -0,0 +1,37 @@ +defmodule TelemetryApi.Periodic.OperatorFetcher do + use GenServer + alias TelemetryApi.Operators + + wait_time_str = System.get_env("OPERATOR_FETCHER_WAIT_TIME_MS") || + raise """ + environment variable OPERATOR_FETCHER_WAIT_TIME_MS is missing. + """ + + @wait_time_ms ( + case Integer.parse(wait_time_str) do + :error -> raise("OPERATOR_FETCHER_WAIT_TIME_MS is not a number, received: #{wait_time_str}") + {num, _} -> num + end + ) + + def start_link(_) do + GenServer.start_link(__MODULE__, %{}) + end + + def init(_) do + send_work() + {:ok, %{}} + end + + def send_work() do + :timer.send_interval(@wait_time_ms, :fetch_operators) + end + + def handle_info(:fetch_operators, _state) do + case Operators.fetch_all_operators() do + {:ok, _} -> :ok + {:error, message} -> IO.inspect "Couldn't fetch operators: #{IO.inspect message}" + end + {:noreply, %{}} + end +end diff --git a/telemetry_api/lib/telemetry_api/repo.ex b/telemetry_api/lib/telemetry_api/repo.ex new file mode 100644 index 000000000..8f57bf72e --- /dev/null +++ b/telemetry_api/lib/telemetry_api/repo.ex @@ -0,0 +1,5 @@ +defmodule TelemetryApi.Repo do + use Ecto.Repo, + otp_app: :telemetry_api, + adapter: Ecto.Adapters.Postgres +end diff --git a/telemetry_api/lib/telemetry_api/signature_verifier.ex b/telemetry_api/lib/telemetry_api/signature_verifier.ex new file mode 100644 index 000000000..41360f3b2 --- /dev/null +++ b/telemetry_api/lib/telemetry_api/signature_verifier.ex @@ -0,0 +1,59 @@ +defmodule SignatureVerifier do + alias ExSecp256k1 + alias ExKeccak + alias :binary, as: Binary + + # Hash the version string using Keccak256 + defp hash_version(version) do + ExKeccak.hash_256(version) + end + + # Recover the public key from the signature and hashed version + defp recover_public_key(hash, signature, recovery_id) do + case ExSecp256k1.recover_compact(hash, signature, recovery_id) do + {:ok, public_key} -> {:ok, public_key} + _error -> {:error, :bad_request, "Failed to recover public key"} + end + end + + # Convert public key to Ethereum-like address + def public_key_to_address(public_key) do + # Remove the first byte (which is 0x04 for uncompressed public keys) + public_key = binary_part(public_key, 1, 64) + + # Hash the public key with Keccak256 + public_key_hash = ExKeccak.hash_256(public_key) + + # Get the last 20 bytes (Ethereum address format) + <<_::binary-size(12), address::binary-size(20)>> = public_key_hash + address + end + + @doc """ + Get the address from the version and signature + + Examples + iex> version = "v0.7.0" + iex> signature = N1UJOvjJT1W39MdQUYAOsKZj4aQ1Sjkwp31NJgafpjoUniGt24tSaLw6TlTKP68AkLtsIFoVEaJcJDj7TyvhLQA= + iex> recover_address(version, signature) + "0x..." + """ + def recover_address(version, signature) do + version_hash = hash_version(version) + # Signature contains r, s and v (recovery_id) + # r<>s is 64 bytes. + # v is the last byte of the signature and have to be converted to integer + {:ok, binary_signature} = Base.decode64(signature) + signature_len = byte_size(binary_signature) + rs = binary_part(binary_signature, 0, signature_len - 1) + recovery_id = Binary.decode_unsigned(binary_part(binary_signature, signature_len - 1, 1)) + + with {:ok, address} <- recover_public_key(version_hash, rs, recovery_id) do + addr = + public_key_to_address(address) + |> Base.encode16(case: :lower) + + {:ok, addr} + end + end +end diff --git a/telemetry_api/lib/telemetry_api/trace_store.ex b/telemetry_api/lib/telemetry_api/trace_store.ex new file mode 100644 index 000000000..0e0e43ffc --- /dev/null +++ b/telemetry_api/lib/telemetry_api/trace_store.ex @@ -0,0 +1,36 @@ +defmodule TraceStore do + use Agent + + # Start the agent + def start_link(_opts) do + Agent.start_link(fn -> %{} end, name: __MODULE__) + end + + # Store the trace using the merkle_root as the key + def store_trace(merkle_root, trace) do + Agent.update(__MODULE__, fn state -> + Map.put(state, merkle_root, trace) + end) + end + + # Retrieve the trace by merkle_root + def get_trace(merkle_root) do + Agent.get(__MODULE__, fn state -> + case Map.get(state, merkle_root) do + nil -> + IO.inspect("Context not found for #{merkle_root}") + {:error, :not_found, "Context not found for #{merkle_root}"} + + trace -> + {:ok, trace} + end + end) + end + + # Delete the trace after it's used + def delete_trace(merkle_root) do + Agent.update(__MODULE__, fn state -> + Map.delete(state, merkle_root) + end) + end +end diff --git a/telemetry_api/lib/telemetry_api/traces.ex b/telemetry_api/lib/telemetry_api/traces.ex new file mode 100644 index 000000000..3d008c891 --- /dev/null +++ b/telemetry_api/lib/telemetry_api/traces.ex @@ -0,0 +1,189 @@ +defmodule TelemetryApi.Traces do + @moduledoc """ + The Traces context. + """ + alias TelemetryApi.Traces.Trace + alias TelemetryApi.Operators + alias TelemetryApi.ContractManagers.StakeRegistry + + require OpenTelemetry.Tracer + require OpenTelemetry.Ctx + alias OpenTelemetry.Tracer, as: Tracer + alias OpenTelemetry.Ctx, as: Ctx + + @doc """ + Send the trace to OpenTelemetry + + This function is responsible for creating a new span and storing the context in the Agent. + + ## Examples + + iex> merkle_root = "0x1234567890abcdef" + iex> create_task_trace(merkle_root) + :ok + """ + def create_task_trace(merkle_root) do + # Get total stake + with {:ok, total_stake} <- StakeRegistry.get_current_total_stake() do + span_ctx = + Tracer.start_span( + "Task: #{merkle_root}", + %{ + attributes: [ + {:merkle_root, merkle_root}, + {:total_stake, total_stake} + ] + } + ) + + ctx = Ctx.get_current() + + TraceStore.store_trace(merkle_root, %Trace{ + parent_span: span_ctx, + context: ctx, + total_stake: total_stake, + current_stake: 0, + responses: [] + }) + + IO.inspect("New task trace with merkle_root: #{IO.inspect(merkle_root)}") + :ok + end + end + + @doc """ + Registers an operator response in the task trace. + + ## Examples + + iex> merkle_root = "0x1234567890abcdef" + iex> operator_id = "0x..." + iex> register_operator_response(merkle_root, operator_id) + :ok + """ + def register_operator_response(merkle_root, operator_id) do + with {:ok, operator} <- Operators.get_operator(%{id: operator_id}), + {:ok, trace} <- set_current_trace(merkle_root) do + operator_stake = Decimal.new(operator.stake) + new_stake = Decimal.add(trace.current_stake, operator_stake) + new_stake_fraction = Decimal.div(new_stake, trace.total_stake) + operator_stake_fraction = Decimal.div(operator_stake, trace.total_stake) + + Tracer.add_event( + "Operator Response: " <> operator.name, + [ + {:merkle_root, merkle_root}, + {:operator_id, operator_id}, + {:name, operator.name}, + {:address, operator.address}, + {:operator_stake, Decimal.to_string(operator_stake)}, + {:current_stake, Decimal.to_string(new_stake)}, + {:current_stake_fraction, Decimal.to_string(new_stake_fraction)}, + {:operator_stake_fraction, Decimal.to_string(operator_stake_fraction)} + ] + ) + + responses = trace.responses ++ [operator_id] + + TraceStore.store_trace(merkle_root, %{ + trace + | responses: responses, + current_stake: new_stake + }) + + IO.inspect( + "Operator response included. merkle_root: #{IO.inspect(merkle_root)} operator_id: #{IO.inspect(operator_id)}" + ) + + :ok + end + end + + @doc """ + Registers a reached quorum in the task trace. + + ## Examples + + iex> merkle_root = "0x1234567890abcdef" + iex> quorum_reached(merkle_root) + :ok + """ + def quorum_reached(merkle_root) do + with {:ok, _trace} <- set_current_trace(merkle_root) do + Tracer.add_event("Quorum Reached", []) + IO.inspect("Reached quorum registered. merkle_root: #{IO.inspect(merkle_root)}") + :ok + end + end + + @doc """ + Registers an error in the task trace. + + ## Examples + + iex> merkle_root = "0x1234567890abcdef" + iex> error = "Some error.." + iex> task_error(merkle_root, error) + :ok + """ + def task_error(merkle_root, error) do + with {:ok, _trace} <- set_current_trace(merkle_root) do + Tracer.add_event( + "Batch verification failed", + [ + {:status, "error"}, + {:error, error} + ] + ) + + IO.inspect("Task error registered. merkle_root: #{IO.inspect(merkle_root)}") + :ok + end + end + + @doc """ + Finish the task trace + + This function is responsible for ending the span and cleaning up the context. + + ## Examples + + iex> merkle_root = "0x1234567890abcdef" + iex> finish_task_trace(merkle_root) + :ok + """ + def finish_task_trace(merkle_root) do + with {:ok, trace} <- set_current_trace(merkle_root) do + missing_operators = + Operators.list_operators() |> Enum.filter(fn o -> o.id not in trace.responses end) + + add_missing_operators(missing_operators) + + Tracer.set_attributes(%{status: "completed"}) + + Tracer.end_span() + + # Clean up the context from the Agent + TraceStore.delete_trace(merkle_root) + IO.inspect("Finished task trace with merkle_root: #{IO.inspect(merkle_root)}.") + :ok + end + end + + defp add_missing_operators([]), do: :ok + + defp add_missing_operators(missing_operators) do + missing_operators = + missing_operators |> Enum.map(fn o -> o.name end) |> Enum.join(";") + + Tracer.add_event("Missing Operators", [{:operators, missing_operators}]) + end + + defp set_current_trace(merkle_root) do + with {:ok, trace} <- TraceStore.get_trace(merkle_root) do + Ctx.attach(trace.context) + Tracer.set_current_span(trace.parent_span) + {:ok, trace} + end + end +end diff --git a/telemetry_api/lib/telemetry_api/traces/trace.ex b/telemetry_api/lib/telemetry_api/traces/trace.ex new file mode 100644 index 000000000..cabad1b41 --- /dev/null +++ b/telemetry_api/lib/telemetry_api/traces/trace.ex @@ -0,0 +1,4 @@ +defmodule TelemetryApi.Traces.Trace do + @enforce_keys [:parent_span, :context, :total_stake, :current_stake, :responses] + defstruct [:parent_span, :context, :total_stake, :current_stake, :responses] +end diff --git a/telemetry_api/lib/telemetry_api/utils.ex b/telemetry_api/lib/telemetry_api/utils.ex new file mode 100644 index 000000000..073a7a7df --- /dev/null +++ b/telemetry_api/lib/telemetry_api/utils.ex @@ -0,0 +1,53 @@ +defmodule TelemetryApi.Utils do + @moduledoc """ + Some utility functions + """ + + @doc """ + Fetches the provided url and returns a json decoded map + + ## Examples + + iex> fetch_json_data(url) + {:ok, data} + + iex> fetch_json_data(url) + {:error, message} + """ + def fetch_json_data(url) do + case HTTPoison.get(url) do + {:ok, %HTTPoison.Response{status_code: 200, body: body}} -> + {:ok, Jason.decode!(body)} + + {:ok, %HTTPoison.Response{status_code: status_code}} -> + {:error, "Request failed with status #{status_code}"} + + {:error, %HTTPoison.Error{reason: reason}} -> + {:error, "HTTP request failed: #{reason}"} + end + end + + @doc """ + Unwraps inner element status + + ## Examples + + iex> error_message = "Error found on list" + iex> list = [{:ok, 2}, {:ok, 3}] + iex> check_list_status(list, error_message) + {:ok, list} + + iex> list = [{:ok, 2}, {:ok, 3}, {:error, "this is an error"}] + iex> check_list_status(list, error_message) + {:error, "Error found on list"} + """ + def check_list_status(list, error_message) do + case Enum.find(list, fn {status, _} -> status == :error end) do + nil -> + {:ok, Enum.map(list, fn {:ok, value} -> value end)} + + {:error, _} -> + {:error, error_message} + end + end +end diff --git a/telemetry_api/lib/telemetry_api_web.ex b/telemetry_api/lib/telemetry_api_web.ex new file mode 100644 index 000000000..90b61b603 --- /dev/null +++ b/telemetry_api/lib/telemetry_api_web.ex @@ -0,0 +1,65 @@ +defmodule TelemetryApiWeb do + @moduledoc """ + The entrypoint for defining your web interface, such + as controllers, components, channels, and so on. + + This can be used in your application as: + + use TelemetryApiWeb, :controller + use TelemetryApiWeb, :html + + The definitions below will be executed for every controller, + component, etc, so keep them short and clean, focused + on imports, uses and aliases. + + Do NOT define functions inside the quoted expressions + below. Instead, define additional modules and import + those modules here. + """ + + def static_paths, do: ~w(assets fonts images favicon.ico robots.txt) + + def router do + quote do + use Phoenix.Router, helpers: false + + # Import common connection and controller functions to use in pipelines + import Plug.Conn + import Phoenix.Controller + end + end + + def channel do + quote do + use Phoenix.Channel + end + end + + def controller do + quote do + use Phoenix.Controller, + formats: [:html, :json], + layouts: [html: TelemetryApiWeb.Layouts] + + import Plug.Conn + + unquote(verified_routes()) + end + end + + def verified_routes do + quote do + use Phoenix.VerifiedRoutes, + endpoint: TelemetryApiWeb.Endpoint, + router: TelemetryApiWeb.Router, + statics: TelemetryApiWeb.static_paths() + end + end + + @doc """ + When used, dispatch to the appropriate controller/live_view/etc. + """ + defmacro __using__(which) when is_atom(which) do + apply(__MODULE__, which, []) + end +end diff --git a/telemetry_api/lib/telemetry_api_web/controllers/changeset_json.ex b/telemetry_api/lib/telemetry_api_web/controllers/changeset_json.ex new file mode 100644 index 000000000..5085846f9 --- /dev/null +++ b/telemetry_api/lib/telemetry_api_web/controllers/changeset_json.ex @@ -0,0 +1,25 @@ +defmodule TelemetryApiWeb.ChangesetJSON do + @doc """ + Renders changeset errors. + """ + def error(%{changeset: changeset}) do + # When encoded, the changeset returns its errors + # as a JSON object. So we just pass it forward. + %{errors: Ecto.Changeset.traverse_errors(changeset, &translate_error/1)} + end + + defp translate_error({msg, opts}) do + # You can make use of gettext to translate error messages by + # uncommenting and adjusting the following code: + + # if count = opts[:count] do + # Gettext.dngettext(TelemetryApiWeb.Gettext, "errors", msg, msg, count, opts) + # else + # Gettext.dgettext(TelemetryApiWeb.Gettext, "errors", msg, opts) + # end + + Enum.reduce(opts, msg, fn {key, value}, acc -> + String.replace(acc, "%{#{key}}", fn _ -> to_string(value) end) + end) + end +end diff --git a/telemetry_api/lib/telemetry_api_web/controllers/error_json.ex b/telemetry_api/lib/telemetry_api_web/controllers/error_json.ex new file mode 100644 index 000000000..6c619a972 --- /dev/null +++ b/telemetry_api/lib/telemetry_api_web/controllers/error_json.ex @@ -0,0 +1,21 @@ +defmodule TelemetryApiWeb.ErrorJSON do + @moduledoc """ + This module is invoked by your endpoint in case of errors on JSON requests. + + See config/config.exs. + """ + + # If you want to customize a particular status code, + # you may add your own clauses, such as: + # + # def render("500.json", _assigns) do + # %{errors: %{detail: "Internal Server Error"}} + # end + + # By default, Phoenix returns the status message from + # the template name. For example, "404.json" becomes + # "Not Found". + def render(template, _assigns) do + %{errors: %{detail: Phoenix.Controller.status_message_from_template(template)}} + end +end diff --git a/telemetry_api/lib/telemetry_api_web/controllers/fallback_controller.ex b/telemetry_api/lib/telemetry_api_web/controllers/fallback_controller.ex new file mode 100644 index 000000000..94ecbee59 --- /dev/null +++ b/telemetry_api/lib/telemetry_api_web/controllers/fallback_controller.ex @@ -0,0 +1,28 @@ +defmodule TelemetryApiWeb.FallbackController do + @moduledoc """ + Translates controller action results into valid `Plug.Conn` responses. + + See `Phoenix.Controller.action_fallback/1` for more details. + """ + use TelemetryApiWeb, :controller + + # This clause handles errors returned by Ecto's insert/update/delete. + def call(conn, {:error, %Ecto.Changeset{} = changeset}) do + conn + |> put_status(:unprocessable_entity) + |> put_view(json: TelemetryApiWeb.ChangesetJSON) + |> render(:error, changeset: changeset) + end + + def call(conn, {:error, status, message}) do + conn + |> put_resp_content_type("application/json") + |> send_resp(status, Jason.encode!(%{error: message})) + end + + def call(conn, {:error, message}) do + conn + |> put_resp_content_type("application/json") + |> send_resp(:internal_server_error, Jason.encode!(%{error: message})) + end +end diff --git a/telemetry_api/lib/telemetry_api_web/controllers/operator_controller.ex b/telemetry_api/lib/telemetry_api_web/controllers/operator_controller.ex new file mode 100644 index 000000000..e3325fb49 --- /dev/null +++ b/telemetry_api/lib/telemetry_api_web/controllers/operator_controller.ex @@ -0,0 +1,28 @@ +defmodule TelemetryApiWeb.OperatorController do + use TelemetryApiWeb, :controller + + alias TelemetryApi.Operators + alias TelemetryApi.Operators.Operator + + action_fallback(TelemetryApiWeb.FallbackController) + + def index(conn, _params) do + operators = Operators.list_operators() + render(conn, :index, operators: operators) + end + + def create_or_update(conn, operator_params) do + with {:ok, %Operator{} = operator} <- Operators.update_operator_version(operator_params) do + conn + |> put_status(:created) + |> put_resp_header("location", ~p"/api/operators/#{operator}") + |> render(:show, operator: operator) + end + end + + def show(conn, %{"id" => address}) do + with {:ok, %Operator{} = operator} <- Operators.get_operator(%{address: address}) do + render(conn, :show, operator: operator) + end + end +end diff --git a/telemetry_api/lib/telemetry_api_web/controllers/operator_json.ex b/telemetry_api/lib/telemetry_api_web/controllers/operator_json.ex new file mode 100644 index 000000000..f267d1788 --- /dev/null +++ b/telemetry_api/lib/telemetry_api_web/controllers/operator_json.ex @@ -0,0 +1,27 @@ +defmodule TelemetryApiWeb.OperatorJSON do + alias TelemetryApi.Operators.Operator + + @doc """ + Renders a list of operators. + """ + def index(%{operators: operators}) do + for(operator <- operators, do: data(operator)) + end + + @doc """ + Renders a single operator. + """ + def show(%{operator: operator}) do + data(operator) + end + + defp data(%Operator{} = operator) do + %{ + address: operator.address, + id: operator.id, + stake: operator.stake, + name: operator.name, + version: operator.version + } + end +end diff --git a/telemetry_api/lib/telemetry_api_web/controllers/trace_controller.ex b/telemetry_api/lib/telemetry_api_web/controllers/trace_controller.ex new file mode 100644 index 000000000..6e72237ea --- /dev/null +++ b/telemetry_api/lib/telemetry_api_web/controllers/trace_controller.ex @@ -0,0 +1,70 @@ +defmodule TelemetryApiWeb.TraceController do + use TelemetryApiWeb, :controller + + alias TelemetryApi.Traces + + action_fallback TelemetryApiWeb.FallbackController + + @doc """ + Create a trace for a NewTask with the given merkle_root + Method: POST initTaskTrace + """ + def create_task_trace(conn, %{"merkle_root" => merkle_root}) do + with :ok <- Traces.create_task_trace(merkle_root) do + conn + |> put_status(:created) + |> render(:show_merkle, merkle_root: merkle_root) + end + end + + @doc """ + Register an operator response in the trace of the given merkle_root + Method: POST operatorResponse + """ + def register_operator_response(conn, %{ + "merkle_root" => merkle_root, + "operator_id" => operator_id + }) do + with :ok <- Traces.register_operator_response(merkle_root, operator_id) do + conn + |> put_status(:ok) + |> render(:show_operator, operator_id: operator_id) + end + end + + @doc """ + Registers a reached quorum in the trace of the given merkle_root + Method: POST quorumReached + """ + def quorum_reached(conn, %{"merkle_root" => merkle_root}) do + with :ok <- Traces.quorum_reached(merkle_root) do + conn + |> put_status(:ok) + |> render(:show_merkle, merkle_root: merkle_root) + end + end + + @doc """ + Registers an error in the trace of the given merkle_root + Method: POST taskError + """ + def task_error(conn, %{"merkle_root" => merkle_root, "error" => error}) do + with :ok <- Traces.task_error(merkle_root, error) do + conn + |> put_status(:ok) + |> render(:show_merkle, merkle_root: merkle_root) + end + end + + @doc """ + Finish a trace for the given merkle_root + Method: POST finishTaskTrace + """ + def finish_task_trace(conn, %{"merkle_root" => merkle_root}) do + with :ok <- Traces.finish_task_trace(merkle_root) do + conn + |> put_status(:ok) + |> render(:show_merkle, merkle_root: merkle_root) + end + end +end diff --git a/telemetry_api/lib/telemetry_api_web/controllers/trace_json.ex b/telemetry_api/lib/telemetry_api_web/controllers/trace_json.ex new file mode 100644 index 000000000..c0bda7cc7 --- /dev/null +++ b/telemetry_api/lib/telemetry_api_web/controllers/trace_json.ex @@ -0,0 +1,19 @@ +defmodule TelemetryApiWeb.TraceJSON do + @doc """ + + """ + def show_merkle(%{merkle_root: merkle_root}) do + %{ + merkle_root: merkle_root + } + end + + @doc """ + + """ + def show_operator(%{operator_id: operator_id}) do + %{ + operator_id: operator_id + } + end +end diff --git a/telemetry_api/lib/telemetry_api_web/endpoint.ex b/telemetry_api/lib/telemetry_api_web/endpoint.ex new file mode 100644 index 000000000..897e4939d --- /dev/null +++ b/telemetry_api/lib/telemetry_api_web/endpoint.ex @@ -0,0 +1,51 @@ +defmodule TelemetryApiWeb.Endpoint do + use Phoenix.Endpoint, otp_app: :telemetry_api + + # The session will be stored in the cookie and signed, + # this means its contents can be read but not tampered with. + # Set :encryption_salt if you would also like to encrypt it. + @session_options [ + store: :cookie, + key: "_telemetry_api_key", + signing_salt: "3K5HyxYk", + same_site: "Lax" + ] + + socket "/live", Phoenix.LiveView.Socket, + websocket: [connect_info: [session: @session_options]], + longpoll: [connect_info: [session: @session_options]] + + # Serve at "/" the static files from "priv/static" directory. + # + # You should set gzip to true if you are running phx.digest + # when deploying your static files in production. + plug Plug.Static, + at: "/", + from: :telemetry_api, + gzip: false, + only: TelemetryApiWeb.static_paths() + + # Code reloading can be explicitly enabled under the + # :code_reloader configuration of your endpoint. + if code_reloading? do + plug Phoenix.CodeReloader + plug Phoenix.Ecto.CheckRepoStatus, otp_app: :telemetry_api + end + + # plug Phoenix.LiveDashboard.RequestLogger, + # param_key: "request_logger", + # cookie_key: "request_logger" + + plug Plug.RequestId + plug Plug.Telemetry, event_prefix: [:phoenix, :endpoint] + + plug Plug.Parsers, + parsers: [:urlencoded, :multipart, :json], + pass: ["*/*"], + json_decoder: Phoenix.json_library() + + plug Plug.MethodOverride + plug Plug.Head + plug Plug.Session, @session_options + plug TelemetryApiWeb.Router +end diff --git a/telemetry_api/lib/telemetry_api_web/router.ex b/telemetry_api/lib/telemetry_api_web/router.ex new file mode 100644 index 000000000..a919fd301 --- /dev/null +++ b/telemetry_api/lib/telemetry_api_web/router.ex @@ -0,0 +1,44 @@ +defmodule TelemetryApiWeb.Router do + use TelemetryApiWeb, :router + + pipeline :api do + plug :accepts, ["json"] + end + + scope "/api", TelemetryApiWeb do + pipe_through :api + + get "/operators", OperatorController, :index + get "/operators/:id", OperatorController, :show + post "/operators", OperatorController, :create_or_update + post "/initTaskTrace", TraceController, :create_task_trace + post "/operatorResponse", TraceController, :register_operator_response + post "/quorumReached", TraceController, :quorum_reached + post "/taskError", TraceController, :task_error + post "/finishTaskTrace", TraceController, :finish_task_trace + end + + scope "/versions", TelemetryApiWeb do + pipe_through :api + + get "/", OperatorController, :index + get "/:id", OperatorController, :show + post "/", OperatorController, :create_or_update + end + + # Enable LiveDashboard in development + # if Application.compile_env(:telemetry_api, :dev_routes) do + # # If you want to use the LiveDashboard in production, you should put + # # it behind authentication and allow only admins to access it. + # # If your application does not have an admins-only section yet, + # # you can use Plug.BasicAuth to set up some basic authentication + # # as long as you are also using SSL (which you should anyway). + # import Phoenix.LiveDashboard.Router + + # scope "/dev" do + # pipe_through [:fetch_session, :protect_from_forgery] + + # live_dashboard "/dashboard", metrics: TelemetryApiWeb.Telemetry + # end + # end +end diff --git a/telemetry_api/lib/telemetry_api_web/telemetry.ex b/telemetry_api/lib/telemetry_api_web/telemetry.ex new file mode 100644 index 000000000..b19a5a70c --- /dev/null +++ b/telemetry_api/lib/telemetry_api_web/telemetry.ex @@ -0,0 +1,92 @@ +defmodule TelemetryApiWeb.Telemetry do + use Supervisor + import Telemetry.Metrics + + def start_link(arg) do + Supervisor.start_link(__MODULE__, arg, name: __MODULE__) + end + + @impl true + def init(_arg) do + children = [ + # Telemetry poller will execute the given period measurements + # every 10_000ms. Learn more here: https://hexdocs.pm/telemetry_metrics + {:telemetry_poller, measurements: periodic_measurements(), period: 10_000} + # Add reporters as children of your supervision tree. + # {Telemetry.Metrics.ConsoleReporter, metrics: metrics()} + ] + + Supervisor.init(children, strategy: :one_for_one) + end + + def metrics do + [ + # Phoenix Metrics + summary("phoenix.endpoint.start.system_time", + unit: {:native, :millisecond} + ), + summary("phoenix.endpoint.stop.duration", + unit: {:native, :millisecond} + ), + summary("phoenix.router_dispatch.start.system_time", + tags: [:route], + unit: {:native, :millisecond} + ), + summary("phoenix.router_dispatch.exception.duration", + tags: [:route], + unit: {:native, :millisecond} + ), + summary("phoenix.router_dispatch.stop.duration", + tags: [:route], + unit: {:native, :millisecond} + ), + summary("phoenix.socket_connected.duration", + unit: {:native, :millisecond} + ), + summary("phoenix.channel_joined.duration", + unit: {:native, :millisecond} + ), + summary("phoenix.channel_handled_in.duration", + tags: [:event], + unit: {:native, :millisecond} + ), + + # Database Metrics + summary("telemetry_api.repo.query.total_time", + unit: {:native, :millisecond}, + description: "The sum of the other measurements" + ), + summary("telemetry_api.repo.query.decode_time", + unit: {:native, :millisecond}, + description: "The time spent decoding the data received from the database" + ), + summary("telemetry_api.repo.query.query_time", + unit: {:native, :millisecond}, + description: "The time spent executing the query" + ), + summary("telemetry_api.repo.query.queue_time", + unit: {:native, :millisecond}, + description: "The time spent waiting for a database connection" + ), + summary("telemetry_api.repo.query.idle_time", + unit: {:native, :millisecond}, + description: + "The time the connection spent waiting before being checked out for the query" + ), + + # VM Metrics + summary("vm.memory.total", unit: {:byte, :kilobyte}), + summary("vm.total_run_queue_lengths.total"), + summary("vm.total_run_queue_lengths.cpu"), + summary("vm.total_run_queue_lengths.io") + ] + end + + defp periodic_measurements do + [ + # A module, function and arguments to be invoked periodically. + # This function must call :telemetry.execute/3 and a metric must be added above. + # {TelemetryApiWeb, :count_users, []} + ] + end +end diff --git a/telemetry_api/mix.exs b/telemetry_api/mix.exs new file mode 100644 index 000000000..f3278e611 --- /dev/null +++ b/telemetry_api/mix.exs @@ -0,0 +1,78 @@ +defmodule TelemetryApi.MixProject do + use Mix.Project + + def project do + [ + app: :telemetry_api, + version: "0.1.0", + elixir: "~> 1.14", + elixirc_paths: elixirc_paths(Mix.env()), + start_permanent: Mix.env() == :prod, + releases: [ + telemetry_api: [ + applications: [ + # https://opentelemetry.io/docs/languages/erlang/exporters/#setting-up-the-collector + opentelemetry_exporter: :permanent, + opentelemetry: :temporary + ] + ] + ], + aliases: aliases(), + deps: deps() + ] + end + + # Configuration for the OTP application. + # + # Type `mix help compile.app` for more information. + def application do + [ + mod: {TelemetryApi.Application, []}, + extra_applications: [:logger, :runtime_tools] + ] + end + + # Specifies which paths to compile per environment. + defp elixirc_paths(:test), do: ["lib", "test/support"] + defp elixirc_paths(_), do: ["lib"] + + # Specifies your project dependencies. + # + # Type `mix help deps` for examples and options. + defp deps do + [ + {:phoenix, "~> 1.7.14"}, + {:phoenix_ecto, "~> 4.5"}, + {:ecto_sql, "~> 3.10"}, + {:postgrex, ">= 0.0.0"}, + {:phoenix_live_dashboard, "~> 0.8.3"}, + {:telemetry_metrics, "~> 1.0"}, + {:telemetry_poller, "~> 1.0"}, + {:httpoison, "~> 2.0"}, + {:jason, "~> 1.2"}, + {:dns_cluster, "~> 0.1.1"}, + {:bandit, "~> 1.5"}, + {:ex_keccak, "~> 0.7.5"}, + {:ex_secp256k1, "~> 0.7"}, + {:ethers, "~> 0.4.4"}, + {:opentelemetry, "~> 1.3"}, + {:opentelemetry_api, "~> 1.2"}, + {:opentelemetry_exporter, "~> 1.6"} + ] + end + + # Aliases are shortcuts or tasks specific to the current project. + # For example, to install project dependencies and perform other setup tasks, run: + # + # $ mix setup + # + # See the documentation for `Mix` for more info on aliases. + defp aliases do + [ + setup: ["deps.get", "ecto.setup"], + "ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"], + "ecto.reset": ["ecto.drop", "ecto.setup"], + test: ["ecto.create --quiet", "ecto.migrate --quiet", "test"] + ] + end +end diff --git a/telemetry_api/mix.lock b/telemetry_api/mix.lock new file mode 100644 index 000000000..0d3d1123e --- /dev/null +++ b/telemetry_api/mix.lock @@ -0,0 +1,60 @@ +%{ + "acceptor_pool": {:hex, :acceptor_pool, "1.0.0", "43c20d2acae35f0c2bcd64f9d2bde267e459f0f3fd23dab26485bf518c281b21", [:rebar3], [], "hexpm", "0cbcd83fdc8b9ad2eee2067ef8b91a14858a5883cb7cd800e6fcd5803e158788"}, + "bandit": {:hex, :bandit, "1.5.7", "6856b1e1df4f2b0cb3df1377eab7891bec2da6a7fd69dc78594ad3e152363a50", [:mix], [{:hpax, "~> 1.0.0", [hex: :hpax, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:thousand_island, "~> 1.0", [hex: :thousand_island, repo: "hexpm", optional: false]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "f2dd92ae87d2cbea2fa9aa1652db157b6cba6c405cb44d4f6dd87abba41371cd"}, + "castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"}, + "certifi": {:hex, :certifi, "2.12.0", "2d1cca2ec95f59643862af91f001478c9863c2ac9cb6e2f89780bfd8de987329", [:rebar3], [], "hexpm", "ee68d85df22e554040cdb4be100f33873ac6051387baf6a8f6ce82272340ff1c"}, + "chatterbox": {:hex, :ts_chatterbox, "0.15.1", "5cac4d15dd7ad61fc3c4415ce4826fc563d4643dee897a558ec4ea0b1c835c9c", [:rebar3], [{:hpack, "~> 0.3.0", [hex: :hpack_erl, repo: "hexpm", optional: false]}], "hexpm", "4f75b91451338bc0da5f52f3480fa6ef6e3a2aeecfc33686d6b3d0a0948f31aa"}, + "ctx": {:hex, :ctx, "0.6.0", "8ff88b70e6400c4df90142e7f130625b82086077a45364a78d208ed3ed53c7fe", [:rebar3], [], "hexpm", "a14ed2d1b67723dbebbe423b28d7615eb0bdcba6ff28f2d1f1b0a7e1d4aa5fc2"}, + "db_connection": {:hex, :db_connection, "2.7.0", "b99faa9291bb09892c7da373bb82cba59aefa9b36300f6145c5f201c7adf48ec", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "dcf08f31b2701f857dfc787fbad78223d61a32204f217f15e881dd93e4bdd3ff"}, + "decimal": {:hex, :decimal, "2.1.1", "5611dca5d4b2c3dd497dec8f68751f1f1a54755e8ed2a966c2633cf885973ad6", [:mix], [], "hexpm", "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"}, + "dns_cluster": {:hex, :dns_cluster, "0.1.3", "0bc20a2c88ed6cc494f2964075c359f8c2d00e1bf25518a6a6c7fd277c9b0c66", [:mix], [], "hexpm", "46cb7c4a1b3e52c7ad4cbe33ca5079fbde4840dedeafca2baf77996c2da1bc33"}, + "ecto": {:hex, :ecto, "3.12.3", "1a9111560731f6c3606924c81c870a68a34c819f6d4f03822f370ea31a582208", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "9efd91506ae722f95e48dc49e70d0cb632ede3b7a23896252a60a14ac6d59165"}, + "ecto_sql": {:hex, :ecto_sql, "3.12.0", "73cea17edfa54bde76ee8561b30d29ea08f630959685006d9c6e7d1e59113b7d", [:mix], [{:db_connection, "~> 2.4.1 or ~> 2.5", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.12", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.7", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.19 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "dc9e4d206f274f3947e96142a8fdc5f69a2a6a9abb4649ef5c882323b6d512f0"}, + "ethereumex": {:hex, :ethereumex, "0.10.6", "6d75cac39b5b7a720b064fe48563f205d3d9784e5bde25f983dd07cf306c2a6d", [:make, :mix], [{:finch, "~> 0.16", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "58cf926239dabf8bd1fc6cf50a37b926274240b7f58ba5b235a20b5500a9a7e1"}, + "ethers": {:hex, :ethers, "0.4.5", "5af10678317ff183617072fc5970ee25d7145846e600db769f2e7a53641e6131", [:mix], [{:ethereumex, "~> 0.10.6", [hex: :ethereumex, repo: "hexpm", optional: false]}, {:ex_abi, "~> 0.7.0", [hex: :ex_abi, repo: "hexpm", optional: false]}, {:ex_rlp, "~> 0.6.0", [hex: :ex_rlp, repo: "hexpm", optional: false]}, {:ex_secp256k1, "~> 0.7.2", [hex: :ex_secp256k1, repo: "hexpm", optional: true]}, {:idna, "~> 6.1", [hex: :idna, repo: "hexpm", optional: false]}, {:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "885de526ae5a37bb0cefc882caac2e3b5dd06eff35a9fee43a58523556dda009"}, + "ex_abi": {:hex, :ex_abi, "0.7.3", "5c30551af740d11a10817cb253a7b1d0315f9c02f7bc95f7434885bcff5d9dc5", [:mix], [{:ex_keccak, "~> 0.7.5", [hex: :ex_keccak, repo: "hexpm", optional: false]}, {:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "756e3d2211053ca7e4217eae4193c588f3a310066b86171f03131e2400827bae"}, + "ex_keccak": {:hex, :ex_keccak, "0.7.5", "f3b733173510d48ae9a1ea1de415e694b2651f35c787e63f33b5ed0013fbfd35", [:mix], [{:rustler, ">= 0.0.0", [hex: :rustler, repo: "hexpm", optional: true]}, {:rustler_precompiled, "~> 0.7", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "8a5e1cb7f96fff5e480ff6a121477b90c4fd8c150984086dffd98819f5d83763"}, + "ex_rlp": {:hex, :ex_rlp, "0.6.0", "985391d2356a7cb8712a4a9a2deb93f19f2fbca0323f5c1203fcaf64d077e31e", [:mix], [], "hexpm", "7135db93b861d9e76821039b60b00a6a22d2c4e751bf8c444bffe7a042f1abaf"}, + "ex_secp256k1": {:hex, :ex_secp256k1, "0.7.3", "489b6fd57fab5a7259ace927d8cb5171aad835e9c7279c2a859a0483cb069415", [:mix], [{:rustler, ">= 0.0.0", [hex: :rustler, repo: "hexpm", optional: true]}, {:rustler_precompiled, "~> 0.7", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "ea63159442f4d8143166cd1507da03edc43216d6e7c6bac4b416bdce04f0daa8"}, + "finch": {:hex, :finch, "0.19.0", "c644641491ea854fc5c1bbaef36bfc764e3f08e7185e1f084e35e0672241b76d", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.6.2 or ~> 1.7", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 1.1", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "fc5324ce209125d1e2fa0fcd2634601c52a787aff1cd33ee833664a5af4ea2b6"}, + "gproc": {:hex, :gproc, "0.9.1", "f1df0364423539cf0b80e8201c8b1839e229e5f9b3ccb944c5834626998f5b8c", [:rebar3], [], "hexpm", "905088e32e72127ed9466f0bac0d8e65704ca5e73ee5a62cb073c3117916d507"}, + "grpcbox": {:hex, :grpcbox, "0.17.1", "6e040ab3ef16fe699ffb513b0ef8e2e896da7b18931a1ef817143037c454bcce", [:rebar3], [{:acceptor_pool, "~> 1.0.0", [hex: :acceptor_pool, repo: "hexpm", optional: false]}, {:chatterbox, "~> 0.15.1", [hex: :ts_chatterbox, repo: "hexpm", optional: false]}, {:ctx, "~> 0.6.0", [hex: :ctx, repo: "hexpm", optional: false]}, {:gproc, "~> 0.9.1", [hex: :gproc, repo: "hexpm", optional: false]}], "hexpm", "4a3b5d7111daabc569dc9cbd9b202a3237d81c80bf97212fbc676832cb0ceb17"}, + "hackney": {:hex, :hackney, "1.20.1", "8d97aec62ddddd757d128bfd1df6c5861093419f8f7a4223823537bad5d064e2", [:rebar3], [{:certifi, "~> 2.12.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~> 6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~> 1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~> 1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.4.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~> 1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "fe9094e5f1a2a2c0a7d10918fee36bfec0ec2a979994cff8cfe8058cd9af38e3"}, + "hpack": {:hex, :hpack_erl, "0.3.0", "2461899cc4ab6a0ef8e970c1661c5fc6a52d3c25580bc6dd204f84ce94669926", [:rebar3], [], "hexpm", "d6137d7079169d8c485c6962dfe261af5b9ef60fbc557344511c1e65e3d95fb0"}, + "hpax": {:hex, :hpax, "1.0.0", "28dcf54509fe2152a3d040e4e3df5b265dcb6cb532029ecbacf4ce52caea3fd2", [:mix], [], "hexpm", "7f1314731d711e2ca5fdc7fd361296593fc2542570b3105595bb0bc6d0fad601"}, + "httpoison": {:hex, :httpoison, "2.2.1", "87b7ed6d95db0389f7df02779644171d7319d319178f6680438167d7b69b1f3d", [:mix], [{:hackney, "~> 1.17", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm", "51364e6d2f429d80e14fe4b5f8e39719cacd03eb3f9a9286e61e216feac2d2df"}, + "idna": {:hex, :idna, "6.1.1", "8a63070e9f7d0c62eb9d9fcb360a7de382448200fbbd1b106cc96d3d8099df8d", [:rebar3], [{:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "92376eb7894412ed19ac475e4a86f7b413c1b9fbb5bd16dccd57934157944cea"}, + "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, + "metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm", "69b09adddc4f74a40716ae54d140f93beb0fb8978d8636eaded0c31b6f099f16"}, + "mime": {:hex, :mime, "2.0.6", "8f18486773d9b15f95f4f4f1e39b710045fa1de891fada4516559967276e4dc2", [:mix], [], "hexpm", "c9945363a6b26d747389aac3643f8e0e09d30499a138ad64fe8fd1d13d9b153e"}, + "mimerl": {:hex, :mimerl, "1.3.0", "d0cd9fc04b9061f82490f6581e0128379830e78535e017f7780f37fea7545726", [:rebar3], [], "hexpm", "a1e15a50d1887217de95f0b9b0793e32853f7c258a5cd227650889b38839fe9d"}, + "mint": {:hex, :mint, "1.6.2", "af6d97a4051eee4f05b5500671d47c3a67dac7386045d87a904126fd4bbcea2e", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1 or ~> 0.2.0 or ~> 1.0", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "5ee441dffc1892f1ae59127f74afe8fd82fda6587794278d924e4d90ea3d63f9"}, + "nimble_options": {:hex, :nimble_options, "1.1.1", "e3a492d54d85fc3fd7c5baf411d9d2852922f66e69476317787a7b2bb000a61b", [:mix], [], "hexpm", "821b2470ca9442c4b6984882fe9bb0389371b8ddec4d45a9504f00a66f650b44"}, + "nimble_pool": {:hex, :nimble_pool, "1.1.0", "bf9c29fbdcba3564a8b800d1eeb5a3c58f36e1e11d7b7fb2e084a643f645f06b", [:mix], [], "hexpm", "af2e4e6b34197db81f7aad230c1118eac993acc0dae6bc83bac0126d4ae0813a"}, + "opentelemetry": {:hex, :opentelemetry, "1.4.0", "f928923ed80adb5eb7894bac22e9a198478e6a8f04020ae1d6f289fdcad0b498", [:rebar3], [{:opentelemetry_api, "~> 1.3.0", [hex: :opentelemetry_api, repo: "hexpm", optional: false]}, {:opentelemetry_semantic_conventions, "~> 0.2", [hex: :opentelemetry_semantic_conventions, repo: "hexpm", optional: false]}], "hexpm", "50b32ce127413e5d87b092b4d210a3449ea80cd8224090fe68d73d576a3faa15"}, + "opentelemetry_api": {:hex, :opentelemetry_api, "1.3.1", "83b4713593f80562d9643c4ab0b6f80f3c5fa4c6d0632c43e11b2ccb6b04dfa7", [:mix, :rebar3], [{:opentelemetry_semantic_conventions, "~> 0.2", [hex: :opentelemetry_semantic_conventions, repo: "hexpm", optional: false]}], "hexpm", "9e8a5cc38671e3ac61be48abe5f6b3afdbbb50a1dc08b7950c56f169611505c1"}, + "opentelemetry_exporter": {:hex, :opentelemetry_exporter, "1.7.0", "dec4e90c0667cf11a3642f7fe71982dbc0c6bfbb8725a0b13766830718cf0d98", [:rebar3], [{:grpcbox, ">= 0.0.0", [hex: :grpcbox, repo: "hexpm", optional: false]}, {:opentelemetry, "~> 1.4.0", [hex: :opentelemetry, repo: "hexpm", optional: false]}, {:opentelemetry_api, "~> 1.3.0", [hex: :opentelemetry_api, repo: "hexpm", optional: false]}, {:tls_certificate_check, "~> 1.18", [hex: :tls_certificate_check, repo: "hexpm", optional: false]}], "hexpm", "d0f25f6439ec43f2561537c3fabbe177b38547cddaa3a692cbb8f4770dbefc1e"}, + "opentelemetry_semantic_conventions": {:hex, :opentelemetry_semantic_conventions, "0.2.0", "b67fe459c2938fcab341cb0951c44860c62347c005ace1b50f8402576f241435", [:mix, :rebar3], [], "hexpm", "d61fa1f5639ee8668d74b527e6806e0503efc55a42db7b5f39939d84c07d6895"}, + "parse_trans": {:hex, :parse_trans, "3.4.1", "6e6aa8167cb44cc8f39441d05193be6e6f4e7c2946cb2759f015f8c56b76e5ff", [:rebar3], [], "hexpm", "620a406ce75dada827b82e453c19cf06776be266f5a67cff34e1ef2cbb60e49a"}, + "phoenix": {:hex, :phoenix, "1.7.14", "a7d0b3f1bc95987044ddada111e77bd7f75646a08518942c72a8440278ae7825", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "c7859bc56cc5dfef19ecfc240775dae358cbaa530231118a9e014df392ace61a"}, + "phoenix_ecto": {:hex, :phoenix_ecto, "4.6.2", "3b83b24ab5a2eb071a20372f740d7118767c272db386831b2e77638c4dcc606d", [:mix], [{:ecto, "~> 3.5", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.1", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "3f94d025f59de86be00f5f8c5dd7b5965a3298458d21ab1c328488be3b5fcd59"}, + "phoenix_html": {:hex, :phoenix_html, "4.1.1", "4c064fd3873d12ebb1388425a8f2a19348cef56e7289e1998e2d2fa758aa982e", [:mix], [], "hexpm", "f2f2df5a72bc9a2f510b21497fd7d2b86d932ec0598f0210fed4114adc546c6f"}, + "phoenix_live_dashboard": {:hex, :phoenix_live_dashboard, "0.8.4", "4508e481f791ce62ec6a096e13b061387158cbeefacca68c6c1928e1305e23ed", [:mix], [{:ecto, "~> 3.6.2 or ~> 3.7", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_mysql_extras, "~> 0.5", [hex: :ecto_mysql_extras, repo: "hexpm", optional: true]}, {:ecto_psql_extras, "~> 0.7", [hex: :ecto_psql_extras, repo: "hexpm", optional: true]}, {:ecto_sqlite3_extras, "~> 1.1.7 or ~> 1.2.0", [hex: :ecto_sqlite3_extras, repo: "hexpm", optional: true]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.19 or ~> 1.0", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6 or ~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "2984aae96994fbc5c61795a73b8fb58153b41ff934019cfb522343d2d3817d59"}, + "phoenix_live_view": {:hex, :phoenix_live_view, "0.20.17", "f396bbdaf4ba227b82251eb75ac0afa6b3da5e509bc0d030206374237dfc9450", [:mix], [{:floki, "~> 0.36", [hex: :floki, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a61d741ffb78c85fdbca0de084da6a48f8ceb5261a79165b5a0b59e5f65ce98b"}, + "phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.3", "3168d78ba41835aecad272d5e8cd51aa87a7ac9eb836eabc42f6e57538e3731d", [:mix], [], "hexpm", "bba06bc1dcfd8cb086759f0edc94a8ba2bc8896d5331a1e2c2902bf8e36ee502"}, + "phoenix_template": {:hex, :phoenix_template, "1.0.4", "e2092c132f3b5e5b2d49c96695342eb36d0ed514c5b252a77048d5969330d639", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "2c0c81f0e5c6753faf5cca2f229c9709919aba34fab866d3bc05060c9c444206"}, + "plug": {:hex, :plug, "1.16.1", "40c74619c12f82736d2214557dedec2e9762029b2438d6d175c5074c933edc9d", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a13ff6b9006b03d7e33874945b2755253841b238c34071ed85b0e86057f8cddc"}, + "plug_crypto": {:hex, :plug_crypto, "2.1.0", "f44309c2b06d249c27c8d3f65cfe08158ade08418cf540fd4f72d4d6863abb7b", [:mix], [], "hexpm", "131216a4b030b8f8ce0f26038bc4421ae60e4bb95c5cf5395e1421437824c4fa"}, + "poolboy": {:hex, :poolboy, "1.5.2", "392b007a1693a64540cead79830443abf5762f5d30cf50bc95cb2c1aaafa006b", [:rebar3], [], "hexpm", "dad79704ce5440f3d5a3681c8590b9dc25d1a561e8f5a9c995281012860901e3"}, + "postgrex": {:hex, :postgrex, "0.19.1", "73b498508b69aded53907fe48a1fee811be34cc720e69ef4ccd568c8715495ea", [:mix], [{:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "8bac7885a18f381e091ec6caf41bda7bb8c77912bb0e9285212829afe5d8a8f8"}, + "rustler_precompiled": {:hex, :rustler_precompiled, "0.8.1", "8afe0b6f3a9a677ada046cdd23e3f4c6399618b91a6122289324774961281e1e", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:rustler, "~> 0.23", [hex: :rustler, repo: "hexpm", optional: true]}], "hexpm", "90b8c2297bf7959cfa1c927b2881faad7bb0707183124955369991b76177a166"}, + "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.7", "354c321cf377240c7b8716899e182ce4890c5938111a1296add3ec74cf1715df", [:make, :mix, :rebar3], [], "hexpm", "fe4c190e8f37401d30167c8c405eda19469f34577987c76dde613e838bbc67f8"}, + "telemetry": {:hex, :telemetry, "1.3.0", "fedebbae410d715cf8e7062c96a1ef32ec22e764197f70cda73d82778d61e7a2", [:rebar3], [], "hexpm", "7015fc8919dbe63764f4b4b87a95b7c0996bd539e0d499be6ec9d7f3875b79e6"}, + "telemetry_metrics": {:hex, :telemetry_metrics, "1.0.0", "29f5f84991ca98b8eb02fc208b2e6de7c95f8bb2294ef244a176675adc7775df", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "f23713b3847286a534e005126d4c959ebcca68ae9582118ce436b521d1d47d5d"}, + "telemetry_poller": {:hex, :telemetry_poller, "1.1.0", "58fa7c216257291caaf8d05678c8d01bd45f4bdbc1286838a28c4bb62ef32999", [:rebar3], [{:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "9eb9d9cbfd81cbd7cdd24682f8711b6e2b691289a0de6826e58452f28c103c8f"}, + "thousand_island": {:hex, :thousand_island, "1.3.5", "6022b6338f1635b3d32406ff98d68b843ba73b3aa95cfc27154223244f3a6ca5", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "2be6954916fdfe4756af3239fb6b6d75d0b8063b5df03ba76fd8a4c87849e180"}, + "tls_certificate_check": {:hex, :tls_certificate_check, "1.24.0", "d00e2887551ff8cdae4d0340d90d9fcbc4943c7b5f49d32ed4bc23aff4db9a44", [:rebar3], [{:ssl_verify_fun, "~> 1.1", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm", "90b25a58ee433d91c17f036d4d354bf8859a089bfda60e68a86f8eecae45ef1b"}, + "unicode_util_compat": {:hex, :unicode_util_compat, "0.7.0", "bc84380c9ab48177092f43ac89e4dfa2c6d62b40b8bd132b1059ecc7232f9a78", [:rebar3], [], "hexpm", "25eee6d67df61960cf6a794239566599b09e17e668d3700247bc498638152521"}, + "websock": {:hex, :websock, "0.5.3", "2f69a6ebe810328555b6fe5c831a851f485e303a7c8ce6c5f675abeb20ebdadc", [:mix], [], "hexpm", "6105453d7fac22c712ad66fab1d45abdf049868f253cf719b625151460b8b453"}, + "websock_adapter": {:hex, :websock_adapter, "0.5.7", "65fa74042530064ef0570b75b43f5c49bb8b235d6515671b3d250022cb8a1f9e", [:mix], [{:bandit, ">= 0.6.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.6", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "d0f478ee64deddfec64b800673fd6e0c8888b079d9f3444dd96d2a98383bdbd1"}, +} diff --git a/telemetry_api/priv/abi/DelegationManager.json b/telemetry_api/priv/abi/DelegationManager.json new file mode 100644 index 000000000..8bbe761be --- /dev/null +++ b/telemetry_api/priv/abi/DelegationManager.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_strategyManager","type":"address","internalType":"contract IStrategyManager"},{"name":"_slasher","type":"address","internalType":"contract ISlasher"},{"name":"_eigenPodManager","type":"address","internalType":"contract IEigenPodManager"}],"stateMutability":"nonpayable"},{"type":"function","name":"DELEGATION_APPROVAL_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DOMAIN_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAX_STAKER_OPT_OUT_WINDOW_BLOCKS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MAX_WITHDRAWAL_DELAY_BLOCKS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"STAKER_DELEGATION_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"beaconChainETHStrategy","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IStrategy"}],"stateMutability":"view"},{"type":"function","name":"calculateCurrentStakerDelegationDigestHash","inputs":[{"name":"staker","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"},{"name":"expiry","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"calculateDelegationApprovalDigestHash","inputs":[{"name":"staker","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"},{"name":"_delegationApprover","type":"address","internalType":"address"},{"name":"approverSalt","type":"bytes32","internalType":"bytes32"},{"name":"expiry","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"calculateStakerDelegationDigestHash","inputs":[{"name":"staker","type":"address","internalType":"address"},{"name":"_stakerNonce","type":"uint256","internalType":"uint256"},{"name":"operator","type":"address","internalType":"address"},{"name":"expiry","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"calculateWithdrawalRoot","inputs":[{"name":"withdrawal","type":"tuple","internalType":"struct IDelegationManager.Withdrawal","components":[{"name":"staker","type":"address","internalType":"address"},{"name":"delegatedTo","type":"address","internalType":"address"},{"name":"withdrawer","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"startBlock","type":"uint32","internalType":"uint32"},{"name":"strategies","type":"address[]","internalType":"contract IStrategy[]"},{"name":"shares","type":"uint256[]","internalType":"uint256[]"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"completeQueuedWithdrawal","inputs":[{"name":"withdrawal","type":"tuple","internalType":"struct IDelegationManager.Withdrawal","components":[{"name":"staker","type":"address","internalType":"address"},{"name":"delegatedTo","type":"address","internalType":"address"},{"name":"withdrawer","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"startBlock","type":"uint32","internalType":"uint32"},{"name":"strategies","type":"address[]","internalType":"contract IStrategy[]"},{"name":"shares","type":"uint256[]","internalType":"uint256[]"}]},{"name":"tokens","type":"address[]","internalType":"contract IERC20[]"},{"name":"middlewareTimesIndex","type":"uint256","internalType":"uint256"},{"name":"receiveAsTokens","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"completeQueuedWithdrawals","inputs":[{"name":"withdrawals","type":"tuple[]","internalType":"struct IDelegationManager.Withdrawal[]","components":[{"name":"staker","type":"address","internalType":"address"},{"name":"delegatedTo","type":"address","internalType":"address"},{"name":"withdrawer","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"startBlock","type":"uint32","internalType":"uint32"},{"name":"strategies","type":"address[]","internalType":"contract IStrategy[]"},{"name":"shares","type":"uint256[]","internalType":"uint256[]"}]},{"name":"tokens","type":"address[][]","internalType":"contract IERC20[][]"},{"name":"middlewareTimesIndexes","type":"uint256[]","internalType":"uint256[]"},{"name":"receiveAsTokens","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cumulativeWithdrawalsQueued","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decreaseDelegatedShares","inputs":[{"name":"staker","type":"address","internalType":"address"},{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegateTo","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approverSignatureAndExpiry","type":"tuple","internalType":"struct ISignatureUtils.SignatureWithExpiry","components":[{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"expiry","type":"uint256","internalType":"uint256"}]},{"name":"approverSalt","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegateToBySignature","inputs":[{"name":"staker","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"},{"name":"stakerSignatureAndExpiry","type":"tuple","internalType":"struct ISignatureUtils.SignatureWithExpiry","components":[{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"expiry","type":"uint256","internalType":"uint256"}]},{"name":"approverSignatureAndExpiry","type":"tuple","internalType":"struct ISignatureUtils.SignatureWithExpiry","components":[{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"expiry","type":"uint256","internalType":"uint256"}]},{"name":"approverSalt","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegatedTo","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"delegationApprover","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"delegationApproverSaltIsSpent","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"domainSeparator","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eigenPodManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IEigenPodManager"}],"stateMutability":"view"},{"type":"function","name":"getDelegatableShares","inputs":[{"name":"staker","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"contract IStrategy[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorShares","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"strategies","type":"address[]","internalType":"contract IStrategy[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getWithdrawalDelay","inputs":[{"name":"strategies","type":"address[]","internalType":"contract IStrategy[]"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"increaseDelegatedShares","inputs":[{"name":"staker","type":"address","internalType":"address"},{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"initialOwner","type":"address","internalType":"address"},{"name":"_pauserRegistry","type":"address","internalType":"contract IPauserRegistry"},{"name":"initialPausedStatus","type":"uint256","internalType":"uint256"},{"name":"_minWithdrawalDelayBlocks","type":"uint256","internalType":"uint256"},{"name":"_strategies","type":"address[]","internalType":"contract IStrategy[]"},{"name":"_withdrawalDelayBlocks","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegated","inputs":[{"name":"staker","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"minWithdrawalDelayBlocks","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"modifyOperatorDetails","inputs":[{"name":"newOperatorDetails","type":"tuple","internalType":"struct IDelegationManager.OperatorDetails","components":[{"name":"__deprecated_earningsReceiver","type":"address","internalType":"address"},{"name":"delegationApprover","type":"address","internalType":"address"},{"name":"stakerOptOutWindowBlocks","type":"uint32","internalType":"uint32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorDetails","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IDelegationManager.OperatorDetails","components":[{"name":"__deprecated_earningsReceiver","type":"address","internalType":"address"},{"name":"delegationApprover","type":"address","internalType":"address"},{"name":"stakerOptOutWindowBlocks","type":"uint32","internalType":"uint32"}]}],"stateMutability":"view"},{"type":"function","name":"operatorShares","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"contract IStrategy"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[{"name":"newPausedStatus","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pauseAll","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[{"name":"index","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pauserRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPauserRegistry"}],"stateMutability":"view"},{"type":"function","name":"pendingWithdrawals","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"queueWithdrawals","inputs":[{"name":"queuedWithdrawalParams","type":"tuple[]","internalType":"struct IDelegationManager.QueuedWithdrawalParams[]","components":[{"name":"strategies","type":"address[]","internalType":"contract IStrategy[]"},{"name":"shares","type":"uint256[]","internalType":"uint256[]"},{"name":"withdrawer","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerAsOperator","inputs":[{"name":"registeringOperatorDetails","type":"tuple","internalType":"struct IDelegationManager.OperatorDetails","components":[{"name":"__deprecated_earningsReceiver","type":"address","internalType":"address"},{"name":"delegationApprover","type":"address","internalType":"address"},{"name":"stakerOptOutWindowBlocks","type":"uint32","internalType":"uint32"}]},{"name":"metadataURI","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinWithdrawalDelayBlocks","inputs":[{"name":"newMinWithdrawalDelayBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPauserRegistry","inputs":[{"name":"newPauserRegistry","type":"address","internalType":"contract IPauserRegistry"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStrategyWithdrawalDelayBlocks","inputs":[{"name":"strategies","type":"address[]","internalType":"contract IStrategy[]"},{"name":"withdrawalDelayBlocks","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISlasher"}],"stateMutability":"view"},{"type":"function","name":"stakerNonce","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakerOptOutWindowBlocks","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"strategyManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IStrategyManager"}],"stateMutability":"view"},{"type":"function","name":"strategyWithdrawalDelayBlocks","inputs":[{"name":"","type":"address","internalType":"contract IStrategy"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"undelegate","inputs":[{"name":"staker","type":"address","internalType":"address"}],"outputs":[{"name":"withdrawalRoots","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[{"name":"newPausedStatus","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateOperatorMetadataURI","inputs":[{"name":"metadataURI","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"MinWithdrawalDelayBlocksSet","inputs":[{"name":"previousValue","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newValue","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorDetailsModified","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"newOperatorDetails","type":"tuple","indexed":false,"internalType":"struct IDelegationManager.OperatorDetails","components":[{"name":"__deprecated_earningsReceiver","type":"address","internalType":"address"},{"name":"delegationApprover","type":"address","internalType":"address"},{"name":"stakerOptOutWindowBlocks","type":"uint32","internalType":"uint32"}]}],"anonymous":false},{"type":"event","name":"OperatorMetadataURIUpdated","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"metadataURI","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"operatorDetails","type":"tuple","indexed":false,"internalType":"struct IDelegationManager.OperatorDetails","components":[{"name":"__deprecated_earningsReceiver","type":"address","internalType":"address"},{"name":"delegationApprover","type":"address","internalType":"address"},{"name":"stakerOptOutWindowBlocks","type":"uint32","internalType":"uint32"}]}],"anonymous":false},{"type":"event","name":"OperatorSharesDecreased","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"staker","type":"address","indexed":false,"internalType":"address"},{"name":"strategy","type":"address","indexed":false,"internalType":"contract IStrategy"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorSharesIncreased","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"staker","type":"address","indexed":false,"internalType":"address"},{"name":"strategy","type":"address","indexed":false,"internalType":"contract IStrategy"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"newPausedStatus","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PauserRegistrySet","inputs":[{"name":"pauserRegistry","type":"address","indexed":false,"internalType":"contract IPauserRegistry"},{"name":"newPauserRegistry","type":"address","indexed":false,"internalType":"contract IPauserRegistry"}],"anonymous":false},{"type":"event","name":"StakerDelegated","inputs":[{"name":"staker","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StakerForceUndelegated","inputs":[{"name":"staker","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StakerUndelegated","inputs":[{"name":"staker","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyWithdrawalDelayBlocksSet","inputs":[{"name":"strategy","type":"address","indexed":false,"internalType":"contract IStrategy"},{"name":"previousValue","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newValue","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"newPausedStatus","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WithdrawalCompleted","inputs":[{"name":"withdrawalRoot","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"WithdrawalQueued","inputs":[{"name":"withdrawalRoot","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"withdrawal","type":"tuple","indexed":false,"internalType":"struct IDelegationManager.Withdrawal","components":[{"name":"staker","type":"address","internalType":"address"},{"name":"delegatedTo","type":"address","internalType":"address"},{"name":"withdrawer","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"startBlock","type":"uint32","internalType":"uint32"},{"name":"strategies","type":"address[]","internalType":"contract IStrategy[]"},{"name":"shares","type":"uint256[]","internalType":"uint256[]"}]}],"anonymous":false}],"bytecode":{"object":"0x6101006040523480156200001257600080fd5b5060405162005c3338038062005c33833981016040819052620000359162000140565b6001600160a01b0380841660805280821660c052821660a0526200005862000065565b50504660e0525062000194565b600054610100900460ff1615620000d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000125576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013d57600080fd5b50565b6000806000606084860312156200015657600080fd5b8351620001638162000127565b6020850151909350620001768162000127565b6040850151909250620001898162000127565b809150509250925092565b60805160a05160c05160e051615a0a6200022960003960006126870152600081816105b10152818161102e015281816113aa01528181611c0a015281816129e001528181613e93015261437f015260006107620152600081816104f901528181610ffc0152818161137801528181611c9e01528181612aad01528181612c3001528181613fb901526144250152615a0a6000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a610355366004614835565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461489b565b6109ce565b6103ba6103b5366004614835565b610a90565b60405161036491906148f6565b6103da6103d5366004614993565b610df9565b005b6103da6103ea3660046149e6565b610f3e565b6103da6103fd366004614a0a565b610ff1565b6103da610410366004614a4b565b6110a8565b6103da610423366004614a64565b6111e7565b61035a6104363660046149e6565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f366004614a0a565b6111fb565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614acf565b611229565b6103da6104bc366004614a0a565b61136d565b61035a6104cf3660046149e6565b609b6020526000908152604090205481565b6103da6104ef366004614b76565b61141d565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610364565b61051b6105413660046149e6565b6001600160a01b039081166000908152609960205260409020600101541690565b6105756105703660046149e6565b61155a565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b61035a6213c68081565b6103da61157a565b61035a6105f3366004614e73565b611641565b610575610606366004614eaf565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614ee0565b611671565b6103da610644366004614a4b565b61170c565b61051b6106573660046149e6565b609a602052600090815260409020546001600160a01b031681565b6105756106803660046149e6565b61171d565b6103da61173e565b61035a61069b366004614f6f565b609860209081526000928352604080842090915290825290205481565b6103da6106c6366004615050565b611752565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150e0565b61197e565b604051610364919061516a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461517d565b611a58565b61035a61074b3660046149e6565b609f6020526000908152604090205481565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b610575610792366004614a4b565b609e6020526000908152604090205460ff1681565b6105756107b53660046151b2565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec3660046149e6565b60a16020526000908152604090205481565b61086e61080c3660046149e6565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151de565b611b2a565b61035a62034bc081565b6108d46108cf3660046149e6565b611be3565b60405161036492919061525f565b6103ba6108f03660046149e6565b611f9b565b6103da610903366004615284565b61245f565b6103da6109163660046152dc565b61257c565b6103da6109293660046149e6565b61260d565b61035a612683565b6103da610944366004614a4b565b6126c1565b609d54600090815b838110156109c657600060a16000878785818110610971576109716152f8565b905060200201602081019061098691906149e6565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b506109bf81615324565b9050610951565b509392505050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a4c612683565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b60665460609060019060029081161415610ac55760405162461bcd60e51b8152600401610abc9061533f565b60405180910390fd5b6000836001600160401b03811115610adf57610adf614c18565b604051908082528060200260200182016040528015610b08578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610dee57868682818110610b4357610b436152f8565b9050602002810190610b559190615376565b610b63906020810190615396565b9050878783818110610b7757610b776152f8565b9050602002810190610b899190615376565b610b939080615396565b905014610c085760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610abc565b33878783818110610c1b57610c1b6152f8565b9050602002810190610c2d9190615376565b610c3e9060608101906040016149e6565b6001600160a01b031614610cba5760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610abc565b610dbf3383898985818110610cd157610cd16152f8565b9050602002810190610ce39190615376565b610cf49060608101906040016149e6565b8a8a86818110610d0657610d066152f8565b9050602002810190610d189190615376565b610d229080615396565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6857610d686152f8565b9050602002810190610d7a9190615376565b610d88906020810190615396565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061281d92505050565b838281518110610dd157610dd16152f8565b602090810291909101015280610de681615324565b915050610b29565b509095945050505050565b610e023361155a565b15610e885760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610abc565b610e923384612ddd565b604080518082019091526060815260006020820152610eb43380836000612fd0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610eed91906153df565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f30929190615431565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb59190615460565b6001600160a01b0316336001600160a01b031614610fe55760405162461bcd60e51b8152600401610abc9061547d565b610fee81613266565b50565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806110505750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61106c5760405162461bcd60e51b8152600401610abc906154c7565b6110758361155a565b156110a3576001600160a01b038084166000908152609a6020526040902054166110a18185858561335d565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111149190615524565b6111305760405162461bcd60e51b8152600401610abc90615541565b606654818116146111a95760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610abc565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111ef6133d8565b6110a184848484613432565b6001600160a01b0383166000908152609b602052604081205461122085828686611b2a565b95945050505050565b600054610100900460ff16158080156112495750600054600160ff909116105b806112635750303b158015611263575060005460ff166001145b6112c65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610abc565b6000805460ff1916600117905580156112e9576000805461ff0019166101001790555b6112f38888613658565b6112fb613742565b609755611307896137d9565b6113108661382b565b61131c85858585613432565b8015611362576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806113cc5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113e85760405162461bcd60e51b8152600401610abc906154c7565b6113f18361155a565b156110a3576001600160a01b038084166000908152609a6020526040902054166110a181858585613925565b606654600290600490811614156114465760405162461bcd60e51b8152600401610abc9061533f565b600260c95414156114995760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610abc565b600260c95560005b88811015611549576115398a8a838181106114be576114be6152f8565b90506020028101906114d09190615589565b8989848181106114e2576114e26152f8565b90506020028101906114f49190615396565b898986818110611506576115066152f8565b9050602002013588888781811061151f5761151f6152f8565b9050602002016020810190611534919061559f565b6139a0565b61154281615324565b90506114a1565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e69190615524565b6116025760405162461bcd60e51b8152600401610abc90615541565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000816040516020016116549190615630565b604051602081830303815290604052805190602001209050919050565b6066546002906004908116141561169a5760405162461bcd60e51b8152600401610abc9061533f565b600260c95414156116ed5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610abc565b600260c9556116ff86868686866139a0565b5050600160c95550505050565b6117146133d8565b610fee8161382b565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117466133d8565b61175060006137d9565b565b42836020015110156117d65760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610abc565b6117df8561155a565b156118685760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610abc565b6118718461171d565b6118fd5760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610abc565b6000609b6000876001600160a01b03166001600160a01b0316815260200190815260200160002054905060006119398783888860200151611b2a565b6001600160a01b0388166000908152609b602052604090206001840190558551909150611969908890839061418a565b61197587878686612fd0565b50505050505050565b6060600082516001600160401b0381111561199b5761199b614c18565b6040519080825280602002602001820160405280156119c4578160200160208202803683370190505b50905060005b83518110156109c6576001600160a01b03851660009081526098602052604081208551909190869084908110611a0257611a026152f8565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a3d57611a3d6152f8565b6020908102919091010152611a5181615324565b90506119ca565b611a613361171d565b611ae35760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610abc565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611b1e929190615431565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611ba0612683565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611c53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c779190615643565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611ce7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d0f91908101906156b7565b9150915060008313611d2657909590945092505050565b606080835160001415611de0576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d9b57611d9b6152f8565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611dcf57611dcf6152f8565b602002602001018181525050611f8e565b8351611ded906001615771565b6001600160401b03811115611e0457611e04614c18565b604051908082528060200260200182016040528015611e2d578160200160208202803683370190505b50915081516001600160401b03811115611e4957611e49614c18565b604051908082528060200260200182016040528015611e72578160200160208202803683370190505b50905060005b8451811015611f0c57848181518110611e9357611e936152f8565b6020026020010151838281518110611ead57611ead6152f8565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611edf57611edf6152f8565b6020026020010151828281518110611ef957611ef96152f8565b6020908102919091010152600101611e78565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f319190615789565b81518110611f4157611f416152f8565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f719190615789565b81518110611f8157611f816152f8565b6020026020010181815250505b9097909650945050505050565b60665460609060019060029081161415611fc75760405162461bcd60e51b8152600401610abc9061533f565b611fd08361155a565b6120505760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610abc565b6120598361171d565b156120cc5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610abc565b6001600160a01b0383166121485760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610abc565b6001600160a01b038084166000818152609a60205260409020549091169033148061217b5750336001600160a01b038216145b806121a257506001600160a01b038181166000908152609960205260409020600101541633145b6122145760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610abc565b60008061222086611be3565b9092509050336001600160a01b0387161461227657826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040902080546001600160a01b031916905581516122f8576040805160008152602081019091529450612456565b81516001600160401b0381111561231157612311614c18565b60405190808252806020026020018201604052801561233a578160200160208202803683370190505b50945060005b8251811015612454576040805160018082528183019092526000916020808301908036833750506040805160018082528183019092529293506000929150602080830190803683370190505090508483815181106123a0576123a06152f8565b6020026020010151826000815181106123bb576123bb6152f8565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123ed576123ed6152f8565b602002602001015181600081518110612408576124086152f8565b60200260200101818152505061242189878b858561281d565b888481518110612433576124336152f8565b6020026020010181815250505050808061244c90615324565b915050612340565b505b50505050919050565b6124683361155a565b156124e65760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610abc565b6124ef8361171d565b6125705760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610abc565b6110a333848484612fd0565b6125853361171d565b6126035760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610abc565b610fee3382612ddd565b6126156133d8565b6001600160a01b03811661267a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610abc565b610fee816137d9565b60007f00000000000000000000000000000000000000000000000000000000000000004614156126b4575060975490565b6126bc613742565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612714573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127389190615460565b6001600160a01b0316336001600160a01b0316146127685760405162461bcd60e51b8152600401610abc9061547d565b6066541981196066541916146127e65760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610abc565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111dc565b60006001600160a01b0386166128b45760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610abc565b825161293e5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610abc565b60005b8351811015612ceb576001600160a01b03861615612997576129978688868481518110612970576129706152f8565b602002602001015186858151811061298a5761298a6152f8565b602002602001015161335d565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b03168482815181106129c7576129c76152f8565b60200260200101516001600160a01b03161415612a90577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb8988858481518110612a2057612a206152f8565b60200260200101516040518363ffffffff1660e01b8152600401612a599291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a7357600080fd5b505af1158015612a87573d6000803e3d6000fd5b50505050612ce3565b846001600160a01b0316876001600160a01b03161480612b6257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612aec57612aec6152f8565b60200260200101516040518263ffffffff1660e01b8152600401612b1f91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b609190615524565b155b612c2e5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610abc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612c7057612c706152f8565b6020026020010151868581518110612c8a57612c8a6152f8565b60200260200101516040518463ffffffff1660e01b8152600401612cb0939291906157a0565b600060405180830381600087803b158015612cca57600080fd5b505af1158015612cde573d6000803e3d6000fd5b505050505b600101612941565b506001600160a01b0386166000908152609f60205260408120805491829190612d1383615324565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d7b82611641565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612dc990839085906157c4565b60405180910390a198975050505050505050565b6213c680612df160608301604084016157dd565b63ffffffff161115612ea65760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610abc565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612ee290606084019084016157dd565b63ffffffff161015612f785760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610abc565b6001600160a01b03821660009081526099602052604090208190612f9c828261581a565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611b1e9084906153df565b60665460009060019081161415612ff95760405162461bcd60e51b8152600401610abc9061533f565b6001600160a01b0380851660009081526099602052604090206001015416801580159061302f5750336001600160a01b03821614155b80156130445750336001600160a01b03861614155b156131b15742846020015110156130c35760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610abc565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561315d5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610abc565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161319e9088908890859088906109ce565b90506131af8282876000015161418a565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a360008061321088611be3565b9150915060005b82518110156113625761325e888a858481518110613237576132376152f8565b6020026020010151858581518110613251576132516152f8565b6020026020010151613925565b600101613217565b6001600160a01b0381166132f45760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610abc565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613394908490615789565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f30939291906157a0565b6033546001600160a01b031633146117505760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610abc565b8281146134ba5760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610abc565b8260005b818110156136505760008686838181106134da576134da6152f8565b90506020020160208101906134ef91906149e6565b6001600160a01b038116600090815260a1602052604081205491925086868581811061351d5761351d6152f8565b90506020020135905062034bc08111156135e15760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610abc565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a15050508061364990615324565b90506134be565b505050505050565b6065546001600160a01b031615801561367957506001600160a01b03821615155b6136fb5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610abc565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261373e82613266565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138e45760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610abc565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b0380851660009081526098602090815260408083209386168352929052908120805483929061395c908490615771565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f30939291906157a0565b60006139ae6105f38761587d565b6000818152609e602052604090205490915060ff16613a2f5760405162461bcd60e51b815260206004820152604360248201526000805160206159b583398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610abc565b609d544390613a4460a0890160808a016157dd565b63ffffffff16613a549190615771565b1115613adc5760405162461bcd60e51b815260206004820152605f60248201526000805160206159b583398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610abc565b613aec60608701604088016149e6565b6001600160a01b0316336001600160a01b031614613b795760405162461bcd60e51b815260206004820152605060248201526000805160206159b583398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610abc565b8115613bfb57613b8c60a0870187615396565b85149050613bfb5760405162461bcd60e51b815260206004820152604260248201526000805160206159b583398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610abc565b6000818152609e60205260409020805460ff191690558115613d605760005b613c2760a0880188615396565b9050811015613d5a574360a16000613c4260a08b018b615396565b85818110613c5257613c526152f8565b9050602002016020810190613c6791906149e6565b6001600160a01b03168152602081019190915260400160002054613c9160a08a0160808b016157dd565b63ffffffff16613ca19190615771565b1115613cbf5760405162461bcd60e51b8152600401610abc9061588f565b613d52613ccf60208901896149e6565b33613cdd60a08b018b615396565b85818110613ced57613ced6152f8565b9050602002016020810190613d0291906149e6565b613d0f60c08c018c615396565b86818110613d1f57613d1f6152f8565b905060200201358a8a87818110613d3857613d386152f8565b9050602002016020810190613d4d91906149e6565b614344565b600101613c1a565b5061414f565b336000908152609a60205260408120546001600160a01b0316905b613d8860a0890189615396565b905081101561414c574360a16000613da360a08c018c615396565b85818110613db357613db36152f8565b9050602002016020810190613dc891906149e6565b6001600160a01b03168152602081019190915260400160002054613df260a08b0160808c016157dd565b63ffffffff16613e029190615771565b1115613e205760405162461bcd60e51b8152600401610abc9061588f565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e4260a08a018a615396565b83818110613e5257613e526152f8565b9050602002016020810190613e6791906149e6565b6001600160a01b03161415613fb7576000613e8560208a018a6149e6565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613ec660c08e018e615396565b87818110613ed657613ed66152f8565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613f2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f4e9190615643565b6001600160a01b038084166000908152609a6020526040902054919250168015613faf57613faf8184613f8460a08f018f615396565b88818110613f9457613f946152f8565b9050602002016020810190613fa991906149e6565b85613925565b505050614144565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea133898985818110613ff957613ff96152f8565b905060200201602081019061400e91906149e6565b61401b60a08d018d615396565b8681811061402b5761402b6152f8565b905060200201602081019061404091906149e6565b61404d60c08e018e615396565b8781811061405d5761405d6152f8565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b1580156140bd57600080fd5b505af11580156140d1573d6000803e3d6000fd5b505050506001600160a01b038216156141445761414482336140f660a08c018c615396565b85818110614106576141066152f8565b905060200201602081019061411b91906149e6565b61412860c08d018d615396565b86818110614138576141386152f8565b90506020020135613925565b600101613d7b565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b156142a457604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141ca9086908690600401615917565b602060405180830381865afa1580156141e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061420b9190615974565b6001600160e01b031916146110a35760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610abc565b826001600160a01b03166142b88383614484565b6001600160a01b0316146110a35760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610abc565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014156143ef5760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b1300906143b8908890889087906004016157a0565b600060405180830381600087803b1580156143d257600080fd5b505af11580156143e6573d6000803e3d6000fd5b5050505061447d565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561446957600080fd5b505af1158015611362573d6000803e3d6000fd5b5050505050565b600080600061449385856144a0565b915091506109c681614510565b6000808251604114156144d75760208301516040840151606085015160001a6144cb878285856146cb565b94509450505050614509565b82516040141561450157602083015160408401516144f68683836147b8565b935093505050614509565b506000905060025b9250929050565b60008160048111156145245761452461599e565b141561452d5750565b60018160048111156145415761454161599e565b141561458f5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610abc565b60028160048111156145a3576145a361599e565b14156145f15760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610abc565b60038160048111156146055761460561599e565b141561465e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610abc565b60048160048111156146725761467261599e565b1415610fee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610abc565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561470257506000905060036147af565b8460ff16601b1415801561471a57508460ff16601c14155b1561472b57506000905060046147af565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561477f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166147a8576000600192509250506147af565b9150600090505b94509492505050565b6000806001600160ff1b038316816147d560ff86901c601b615771565b90506147e3878288856146cb565b935093505050935093915050565b60008083601f84011261480357600080fd5b5081356001600160401b0381111561481a57600080fd5b6020830191508360208260051b850101111561450957600080fd5b6000806020838503121561484857600080fd5b82356001600160401b0381111561485e57600080fd5b61486a858286016147f1565b90969095509350505050565b6001600160a01b0381168114610fee57600080fd5b803561489681614876565b919050565b600080600080600060a086880312156148b357600080fd5b85356148be81614876565b945060208601356148ce81614876565b935060408601356148de81614876565b94979396509394606081013594506080013592915050565b6020808252825182820181905260009190848201906040850190845b8181101561492e57835183529284019291840191600101614912565b50909695505050505050565b60006060828403121561494c57600080fd5b50919050565b60008083601f84011261496457600080fd5b5081356001600160401b0381111561497b57600080fd5b60208301915083602082850101111561450957600080fd5b6000806000608084860312156149a857600080fd5b6149b2858561493a565b925060608401356001600160401b038111156149cd57600080fd5b6149d986828701614952565b9497909650939450505050565b6000602082840312156149f857600080fd5b8135614a0381614876565b9392505050565b600080600060608486031215614a1f57600080fd5b8335614a2a81614876565b92506020840135614a3a81614876565b929592945050506040919091013590565b600060208284031215614a5d57600080fd5b5035919050565b60008060008060408587031215614a7a57600080fd5b84356001600160401b0380821115614a9157600080fd5b614a9d888389016147f1565b90965094506020870135915080821115614ab657600080fd5b50614ac3878288016147f1565b95989497509550505050565b60008060008060008060008060c0898b031215614aeb57600080fd5b8835614af681614876565b97506020890135614b0681614876565b9650604089013595506060890135945060808901356001600160401b0380821115614b3057600080fd5b614b3c8c838d016147f1565b909650945060a08b0135915080821115614b5557600080fd5b50614b628b828c016147f1565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b9257600080fd5b88356001600160401b0380821115614ba957600080fd5b614bb58c838d016147f1565b909a50985060208b0135915080821115614bce57600080fd5b614bda8c838d016147f1565b909850965060408b0135915080821115614bf357600080fd5b614bff8c838d016147f1565b909650945060608b0135915080821115614b5557600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c5057614c50614c18565b60405290565b604080519081016001600160401b0381118282101715614c5057614c50614c18565b604051601f8201601f191681016001600160401b0381118282101715614ca057614ca0614c18565b604052919050565b63ffffffff81168114610fee57600080fd5b803561489681614ca8565b60006001600160401b03821115614cde57614cde614c18565b5060051b60200190565b600082601f830112614cf957600080fd5b81356020614d0e614d0983614cc5565b614c78565b82815260059290921b84018101918181019086841115614d2d57600080fd5b8286015b84811015614d51578035614d4481614876565b8352918301918301614d31565b509695505050505050565b600082601f830112614d6d57600080fd5b81356020614d7d614d0983614cc5565b82815260059290921b84018101918181019086841115614d9c57600080fd5b8286015b84811015614d515780358352918301918301614da0565b600060e08284031215614dc957600080fd5b614dd1614c2e565b9050614ddc8261488b565b8152614dea6020830161488b565b6020820152614dfb6040830161488b565b604082015260608201356060820152614e1660808301614cba565b608082015260a08201356001600160401b0380821115614e3557600080fd5b614e4185838601614ce8565b60a084015260c0840135915080821115614e5a57600080fd5b50614e6784828501614d5c565b60c08301525092915050565b600060208284031215614e8557600080fd5b81356001600160401b03811115614e9b57600080fd5b614ea784828501614db7565b949350505050565b600060208284031215614ec157600080fd5b813560ff81168114614a0357600080fd5b8015158114610fee57600080fd5b600080600080600060808688031215614ef857600080fd5b85356001600160401b0380821115614f0f57600080fd5b9087019060e0828a031215614f2357600080fd5b90955060208701359080821115614f3957600080fd5b50614f46888289016147f1565b909550935050604086013591506060860135614f6181614ed2565b809150509295509295909350565b60008060408385031215614f8257600080fd5b8235614f8d81614876565b91506020830135614f9d81614876565b809150509250929050565b600060408284031215614fba57600080fd5b614fc2614c56565b905081356001600160401b0380821115614fdb57600080fd5b818401915084601f830112614fef57600080fd5b813560208282111561500357615003614c18565b615015601f8301601f19168201614c78565b9250818352868183860101111561502b57600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a0868803121561506857600080fd5b853561507381614876565b9450602086013561508381614876565b935060408601356001600160401b038082111561509f57600080fd5b6150ab89838a01614fa8565b945060608801359150808211156150c157600080fd5b506150ce88828901614fa8565b95989497509295608001359392505050565b600080604083850312156150f357600080fd5b82356150fe81614876565b915060208301356001600160401b0381111561511957600080fd5b61512585828601614ce8565b9150509250929050565b600081518084526020808501945080840160005b8381101561515f57815187529582019590820190600101615143565b509495945050505050565b602081526000614a03602083018461512f565b6000806020838503121561519057600080fd5b82356001600160401b038111156151a657600080fd5b61486a85828601614952565b600080604083850312156151c557600080fd5b82356151d081614876565b946020939093013593505050565b600080600080608085870312156151f457600080fd5b84356151ff81614876565b935060208501359250604085013561521681614876565b9396929550929360600135925050565b600081518084526020808501945080840160005b8381101561515f5781516001600160a01b03168752958201959082019060010161523a565b6040815260006152726040830185615226565b8281036020840152611220818561512f565b60008060006060848603121561529957600080fd5b83356152a481614876565b925060208401356001600160401b038111156152bf57600080fd5b6152cb86828701614fa8565b925050604084013590509250925092565b6000606082840312156152ee57600080fd5b614a03838361493a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156153385761533861530e565b5060010190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261538c57600080fd5b9190910192915050565b6000808335601e198436030181126153ad57600080fd5b8301803591506001600160401b038211156153c757600080fd5b6020019150600581901b360382131561450957600080fd5b6060810182356153ee81614876565b6001600160a01b03908116835260208401359061540a82614876565b166020830152604083013561541e81614ca8565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561547257600080fd5b8151614a0381614876565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b60006020828403121561553657600080fd5b8151614a0381614ed2565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261538c57600080fd5b6000602082840312156155b157600080fd5b8135614a0381614ed2565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a085015261561760e0850182615226565b905060c083015184820360c0860152611220828261512f565b602081526000614a0360208301846155bc565b60006020828403121561565557600080fd5b5051919050565b600082601f83011261566d57600080fd5b8151602061567d614d0983614cc5565b82815260059290921b8401810191818101908684111561569c57600080fd5b8286015b84811015614d5157805183529183019183016156a0565b600080604083850312156156ca57600080fd5b82516001600160401b03808211156156e157600080fd5b818501915085601f8301126156f557600080fd5b81516020615705614d0983614cc5565b82815260059290921b8401810191818101908984111561572457600080fd5b948201945b8386101561574b57855161573c81614876565b82529482019490820190615729565b9188015191965090935050508082111561576457600080fd5b506151258582860161565c565b600082198211156157845761578461530e565b500190565b60008282101561579b5761579b61530e565b500390565b6001600160a01b039384168152919092166020820152604081019190915260600190565b828152604060208201526000614ea760408301846155bc565b6000602082840312156157ef57600080fd5b8135614a0381614ca8565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561582581614876565b61582f81836157fa565b5060018101602083013561584281614876565b61584c81836157fa565b50604083013561585b81614ca8565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006158893683614db7565b92915050565b6020808252606e908201526000805160206159b583398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b82815260006020604081840152835180604085015260005b8181101561594b5785810183015185820160600152820161592f565b8181111561595d576000606083870101525b50601f01601f191692909201606001949350505050565b60006020828403121561598657600080fd5b81516001600160e01b031981168114614a0357600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a26469706673582212203a9863b190b0abcf799891a42203a11c6933a165f6897ec6ac670f95b48c927b64736f6c634300080c0033","sourceMap":"1137:46343:2:-:0;;;2862:284;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5650:34:3;;;;;5694;;;;;5738:18;;;;3074:22:2::1;:20;:22::i;:::-;-1:-1:-1::0;;3126:13:2::1;3106:33;::::0;-1:-1:-1;1137:46343:2;;5388:279:46;5456:13;;;;;;;5455:14;5447:66;;;;-1:-1:-1;;;5447:66:46;;1015:2:184;5447:66:46;;;997:21:184;1054:2;1034:18;;;1027:30;1093:34;1073:18;;;1066:62;-1:-1:-1;;;1144:18:184;;;1137:37;1191:19;;5447:66:46;;;;;;;;5527:12;;5542:15;5527:12;;;:30;5523:138;;;5573:12;:30;;-1:-1:-1;;5573:30:46;5588:15;5573:30;;;;;;5622:28;;1363:36:184;;;5622:28:46;;1351:2:184;1336:18;5622:28:46;;;;;;;5523:138;5388:279::o;14:149:184:-;-1:-1:-1;;;;;107:31:184;;97:42;;87:70;;153:1;150;143:12;87:70;14:149;:::o;168:640::-;323:6;331;339;392:2;380:9;371:7;367:23;363:32;360:52;;;408:1;405;398:12;360:52;440:9;434:16;459:49;502:5;459:49;:::i;:::-;577:2;562:18;;556:25;527:5;;-1:-1:-1;590:51:184;556:25;590:51;:::i;:::-;712:2;697:18;;691:25;660:7;;-1:-1:-1;725:51:184;691:25;725:51;:::i;:::-;795:7;785:17;;;168:640;;;;;:::o;1221:184::-;1137:46343:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a610355366004614835565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461489b565b6109ce565b6103ba6103b5366004614835565b610a90565b60405161036491906148f6565b6103da6103d5366004614993565b610df9565b005b6103da6103ea3660046149e6565b610f3e565b6103da6103fd366004614a0a565b610ff1565b6103da610410366004614a4b565b6110a8565b6103da610423366004614a64565b6111e7565b61035a6104363660046149e6565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f366004614a0a565b6111fb565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614acf565b611229565b6103da6104bc366004614a0a565b61136d565b61035a6104cf3660046149e6565b609b6020526000908152604090205481565b6103da6104ef366004614b76565b61141d565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610364565b61051b6105413660046149e6565b6001600160a01b039081166000908152609960205260409020600101541690565b6105756105703660046149e6565b61155a565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b61035a6213c68081565b6103da61157a565b61035a6105f3366004614e73565b611641565b610575610606366004614eaf565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614ee0565b611671565b6103da610644366004614a4b565b61170c565b61051b6106573660046149e6565b609a602052600090815260409020546001600160a01b031681565b6105756106803660046149e6565b61171d565b6103da61173e565b61035a61069b366004614f6f565b609860209081526000928352604080842090915290825290205481565b6103da6106c6366004615050565b611752565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150e0565b61197e565b604051610364919061516a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461517d565b611a58565b61035a61074b3660046149e6565b609f6020526000908152604090205481565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b610575610792366004614a4b565b609e6020526000908152604090205460ff1681565b6105756107b53660046151b2565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec3660046149e6565b60a16020526000908152604090205481565b61086e61080c3660046149e6565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151de565b611b2a565b61035a62034bc081565b6108d46108cf3660046149e6565b611be3565b60405161036492919061525f565b6103ba6108f03660046149e6565b611f9b565b6103da610903366004615284565b61245f565b6103da6109163660046152dc565b61257c565b6103da6109293660046149e6565b61260d565b61035a612683565b6103da610944366004614a4b565b6126c1565b609d54600090815b838110156109c657600060a16000878785818110610971576109716152f8565b905060200201602081019061098691906149e6565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b506109bf81615324565b9050610951565b509392505050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a4c612683565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b60665460609060019060029081161415610ac55760405162461bcd60e51b8152600401610abc9061533f565b60405180910390fd5b6000836001600160401b03811115610adf57610adf614c18565b604051908082528060200260200182016040528015610b08578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610dee57868682818110610b4357610b436152f8565b9050602002810190610b559190615376565b610b63906020810190615396565b9050878783818110610b7757610b776152f8565b9050602002810190610b899190615376565b610b939080615396565b905014610c085760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610abc565b33878783818110610c1b57610c1b6152f8565b9050602002810190610c2d9190615376565b610c3e9060608101906040016149e6565b6001600160a01b031614610cba5760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610abc565b610dbf3383898985818110610cd157610cd16152f8565b9050602002810190610ce39190615376565b610cf49060608101906040016149e6565b8a8a86818110610d0657610d066152f8565b9050602002810190610d189190615376565b610d229080615396565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6857610d686152f8565b9050602002810190610d7a9190615376565b610d88906020810190615396565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061281d92505050565b838281518110610dd157610dd16152f8565b602090810291909101015280610de681615324565b915050610b29565b509095945050505050565b610e023361155a565b15610e885760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610abc565b610e923384612ddd565b604080518082019091526060815260006020820152610eb43380836000612fd0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610eed91906153df565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f30929190615431565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb59190615460565b6001600160a01b0316336001600160a01b031614610fe55760405162461bcd60e51b8152600401610abc9061547d565b610fee81613266565b50565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806110505750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61106c5760405162461bcd60e51b8152600401610abc906154c7565b6110758361155a565b156110a3576001600160a01b038084166000908152609a6020526040902054166110a18185858561335d565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111149190615524565b6111305760405162461bcd60e51b8152600401610abc90615541565b606654818116146111a95760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610abc565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111ef6133d8565b6110a184848484613432565b6001600160a01b0383166000908152609b602052604081205461122085828686611b2a565b95945050505050565b600054610100900460ff16158080156112495750600054600160ff909116105b806112635750303b158015611263575060005460ff166001145b6112c65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610abc565b6000805460ff1916600117905580156112e9576000805461ff0019166101001790555b6112f38888613658565b6112fb613742565b609755611307896137d9565b6113108661382b565b61131c85858585613432565b8015611362576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806113cc5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113e85760405162461bcd60e51b8152600401610abc906154c7565b6113f18361155a565b156110a3576001600160a01b038084166000908152609a6020526040902054166110a181858585613925565b606654600290600490811614156114465760405162461bcd60e51b8152600401610abc9061533f565b600260c95414156114995760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610abc565b600260c95560005b88811015611549576115398a8a838181106114be576114be6152f8565b90506020028101906114d09190615589565b8989848181106114e2576114e26152f8565b90506020028101906114f49190615396565b898986818110611506576115066152f8565b9050602002013588888781811061151f5761151f6152f8565b9050602002016020810190611534919061559f565b6139a0565b61154281615324565b90506114a1565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e69190615524565b6116025760405162461bcd60e51b8152600401610abc90615541565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000816040516020016116549190615630565b604051602081830303815290604052805190602001209050919050565b6066546002906004908116141561169a5760405162461bcd60e51b8152600401610abc9061533f565b600260c95414156116ed5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610abc565b600260c9556116ff86868686866139a0565b5050600160c95550505050565b6117146133d8565b610fee8161382b565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117466133d8565b61175060006137d9565b565b42836020015110156117d65760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610abc565b6117df8561155a565b156118685760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610abc565b6118718461171d565b6118fd5760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610abc565b6000609b6000876001600160a01b03166001600160a01b0316815260200190815260200160002054905060006119398783888860200151611b2a565b6001600160a01b0388166000908152609b602052604090206001840190558551909150611969908890839061418a565b61197587878686612fd0565b50505050505050565b6060600082516001600160401b0381111561199b5761199b614c18565b6040519080825280602002602001820160405280156119c4578160200160208202803683370190505b50905060005b83518110156109c6576001600160a01b03851660009081526098602052604081208551909190869084908110611a0257611a026152f8565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a3d57611a3d6152f8565b6020908102919091010152611a5181615324565b90506119ca565b611a613361171d565b611ae35760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610abc565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611b1e929190615431565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611ba0612683565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611c53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c779190615643565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611ce7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d0f91908101906156b7565b9150915060008313611d2657909590945092505050565b606080835160001415611de0576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d9b57611d9b6152f8565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611dcf57611dcf6152f8565b602002602001018181525050611f8e565b8351611ded906001615771565b6001600160401b03811115611e0457611e04614c18565b604051908082528060200260200182016040528015611e2d578160200160208202803683370190505b50915081516001600160401b03811115611e4957611e49614c18565b604051908082528060200260200182016040528015611e72578160200160208202803683370190505b50905060005b8451811015611f0c57848181518110611e9357611e936152f8565b6020026020010151838281518110611ead57611ead6152f8565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611edf57611edf6152f8565b6020026020010151828281518110611ef957611ef96152f8565b6020908102919091010152600101611e78565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f319190615789565b81518110611f4157611f416152f8565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f719190615789565b81518110611f8157611f816152f8565b6020026020010181815250505b9097909650945050505050565b60665460609060019060029081161415611fc75760405162461bcd60e51b8152600401610abc9061533f565b611fd08361155a565b6120505760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610abc565b6120598361171d565b156120cc5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610abc565b6001600160a01b0383166121485760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610abc565b6001600160a01b038084166000818152609a60205260409020549091169033148061217b5750336001600160a01b038216145b806121a257506001600160a01b038181166000908152609960205260409020600101541633145b6122145760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610abc565b60008061222086611be3565b9092509050336001600160a01b0387161461227657826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040902080546001600160a01b031916905581516122f8576040805160008152602081019091529450612456565b81516001600160401b0381111561231157612311614c18565b60405190808252806020026020018201604052801561233a578160200160208202803683370190505b50945060005b8251811015612454576040805160018082528183019092526000916020808301908036833750506040805160018082528183019092529293506000929150602080830190803683370190505090508483815181106123a0576123a06152f8565b6020026020010151826000815181106123bb576123bb6152f8565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123ed576123ed6152f8565b602002602001015181600081518110612408576124086152f8565b60200260200101818152505061242189878b858561281d565b888481518110612433576124336152f8565b6020026020010181815250505050808061244c90615324565b915050612340565b505b50505050919050565b6124683361155a565b156124e65760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610abc565b6124ef8361171d565b6125705760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610abc565b6110a333848484612fd0565b6125853361171d565b6126035760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610abc565b610fee3382612ddd565b6126156133d8565b6001600160a01b03811661267a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610abc565b610fee816137d9565b60007f00000000000000000000000000000000000000000000000000000000000000004614156126b4575060975490565b6126bc613742565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612714573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127389190615460565b6001600160a01b0316336001600160a01b0316146127685760405162461bcd60e51b8152600401610abc9061547d565b6066541981196066541916146127e65760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610abc565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111dc565b60006001600160a01b0386166128b45760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610abc565b825161293e5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610abc565b60005b8351811015612ceb576001600160a01b03861615612997576129978688868481518110612970576129706152f8565b602002602001015186858151811061298a5761298a6152f8565b602002602001015161335d565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b03168482815181106129c7576129c76152f8565b60200260200101516001600160a01b03161415612a90577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb8988858481518110612a2057612a206152f8565b60200260200101516040518363ffffffff1660e01b8152600401612a599291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a7357600080fd5b505af1158015612a87573d6000803e3d6000fd5b50505050612ce3565b846001600160a01b0316876001600160a01b03161480612b6257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612aec57612aec6152f8565b60200260200101516040518263ffffffff1660e01b8152600401612b1f91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b609190615524565b155b612c2e5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610abc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612c7057612c706152f8565b6020026020010151868581518110612c8a57612c8a6152f8565b60200260200101516040518463ffffffff1660e01b8152600401612cb0939291906157a0565b600060405180830381600087803b158015612cca57600080fd5b505af1158015612cde573d6000803e3d6000fd5b505050505b600101612941565b506001600160a01b0386166000908152609f60205260408120805491829190612d1383615324565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d7b82611641565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612dc990839085906157c4565b60405180910390a198975050505050505050565b6213c680612df160608301604084016157dd565b63ffffffff161115612ea65760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610abc565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612ee290606084019084016157dd565b63ffffffff161015612f785760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610abc565b6001600160a01b03821660009081526099602052604090208190612f9c828261581a565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611b1e9084906153df565b60665460009060019081161415612ff95760405162461bcd60e51b8152600401610abc9061533f565b6001600160a01b0380851660009081526099602052604090206001015416801580159061302f5750336001600160a01b03821614155b80156130445750336001600160a01b03861614155b156131b15742846020015110156130c35760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610abc565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561315d5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610abc565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161319e9088908890859088906109ce565b90506131af8282876000015161418a565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a360008061321088611be3565b9150915060005b82518110156113625761325e888a858481518110613237576132376152f8565b6020026020010151858581518110613251576132516152f8565b6020026020010151613925565b600101613217565b6001600160a01b0381166132f45760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610abc565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613394908490615789565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f30939291906157a0565b6033546001600160a01b031633146117505760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610abc565b8281146134ba5760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610abc565b8260005b818110156136505760008686838181106134da576134da6152f8565b90506020020160208101906134ef91906149e6565b6001600160a01b038116600090815260a1602052604081205491925086868581811061351d5761351d6152f8565b90506020020135905062034bc08111156135e15760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610abc565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a15050508061364990615324565b90506134be565b505050505050565b6065546001600160a01b031615801561367957506001600160a01b03821615155b6136fb5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610abc565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261373e82613266565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138e45760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610abc565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b0380851660009081526098602090815260408083209386168352929052908120805483929061395c908490615771565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f30939291906157a0565b60006139ae6105f38761587d565b6000818152609e602052604090205490915060ff16613a2f5760405162461bcd60e51b815260206004820152604360248201526000805160206159b583398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610abc565b609d544390613a4460a0890160808a016157dd565b63ffffffff16613a549190615771565b1115613adc5760405162461bcd60e51b815260206004820152605f60248201526000805160206159b583398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610abc565b613aec60608701604088016149e6565b6001600160a01b0316336001600160a01b031614613b795760405162461bcd60e51b815260206004820152605060248201526000805160206159b583398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610abc565b8115613bfb57613b8c60a0870187615396565b85149050613bfb5760405162461bcd60e51b815260206004820152604260248201526000805160206159b583398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610abc565b6000818152609e60205260409020805460ff191690558115613d605760005b613c2760a0880188615396565b9050811015613d5a574360a16000613c4260a08b018b615396565b85818110613c5257613c526152f8565b9050602002016020810190613c6791906149e6565b6001600160a01b03168152602081019190915260400160002054613c9160a08a0160808b016157dd565b63ffffffff16613ca19190615771565b1115613cbf5760405162461bcd60e51b8152600401610abc9061588f565b613d52613ccf60208901896149e6565b33613cdd60a08b018b615396565b85818110613ced57613ced6152f8565b9050602002016020810190613d0291906149e6565b613d0f60c08c018c615396565b86818110613d1f57613d1f6152f8565b905060200201358a8a87818110613d3857613d386152f8565b9050602002016020810190613d4d91906149e6565b614344565b600101613c1a565b5061414f565b336000908152609a60205260408120546001600160a01b0316905b613d8860a0890189615396565b905081101561414c574360a16000613da360a08c018c615396565b85818110613db357613db36152f8565b9050602002016020810190613dc891906149e6565b6001600160a01b03168152602081019190915260400160002054613df260a08b0160808c016157dd565b63ffffffff16613e029190615771565b1115613e205760405162461bcd60e51b8152600401610abc9061588f565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e4260a08a018a615396565b83818110613e5257613e526152f8565b9050602002016020810190613e6791906149e6565b6001600160a01b03161415613fb7576000613e8560208a018a6149e6565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613ec660c08e018e615396565b87818110613ed657613ed66152f8565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613f2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f4e9190615643565b6001600160a01b038084166000908152609a6020526040902054919250168015613faf57613faf8184613f8460a08f018f615396565b88818110613f9457613f946152f8565b9050602002016020810190613fa991906149e6565b85613925565b505050614144565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea133898985818110613ff957613ff96152f8565b905060200201602081019061400e91906149e6565b61401b60a08d018d615396565b8681811061402b5761402b6152f8565b905060200201602081019061404091906149e6565b61404d60c08e018e615396565b8781811061405d5761405d6152f8565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b1580156140bd57600080fd5b505af11580156140d1573d6000803e3d6000fd5b505050506001600160a01b038216156141445761414482336140f660a08c018c615396565b85818110614106576141066152f8565b905060200201602081019061411b91906149e6565b61412860c08d018d615396565b86818110614138576141386152f8565b90506020020135613925565b600101613d7b565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b156142a457604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141ca9086908690600401615917565b602060405180830381865afa1580156141e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061420b9190615974565b6001600160e01b031916146110a35760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610abc565b826001600160a01b03166142b88383614484565b6001600160a01b0316146110a35760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610abc565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014156143ef5760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b1300906143b8908890889087906004016157a0565b600060405180830381600087803b1580156143d257600080fd5b505af11580156143e6573d6000803e3d6000fd5b5050505061447d565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561446957600080fd5b505af1158015611362573d6000803e3d6000fd5b5050505050565b600080600061449385856144a0565b915091506109c681614510565b6000808251604114156144d75760208301516040840151606085015160001a6144cb878285856146cb565b94509450505050614509565b82516040141561450157602083015160408401516144f68683836147b8565b935093505050614509565b506000905060025b9250929050565b60008160048111156145245761452461599e565b141561452d5750565b60018160048111156145415761454161599e565b141561458f5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610abc565b60028160048111156145a3576145a361599e565b14156145f15760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610abc565b60038160048111156146055761460561599e565b141561465e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610abc565b60048160048111156146725761467261599e565b1415610fee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610abc565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561470257506000905060036147af565b8460ff16601b1415801561471a57508460ff16601c14155b1561472b57506000905060046147af565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561477f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166147a8576000600192509250506147af565b9150600090505b94509492505050565b6000806001600160ff1b038316816147d560ff86901c601b615771565b90506147e3878288856146cb565b935093505050935093915050565b60008083601f84011261480357600080fd5b5081356001600160401b0381111561481a57600080fd5b6020830191508360208260051b850101111561450957600080fd5b6000806020838503121561484857600080fd5b82356001600160401b0381111561485e57600080fd5b61486a858286016147f1565b90969095509350505050565b6001600160a01b0381168114610fee57600080fd5b803561489681614876565b919050565b600080600080600060a086880312156148b357600080fd5b85356148be81614876565b945060208601356148ce81614876565b935060408601356148de81614876565b94979396509394606081013594506080013592915050565b6020808252825182820181905260009190848201906040850190845b8181101561492e57835183529284019291840191600101614912565b50909695505050505050565b60006060828403121561494c57600080fd5b50919050565b60008083601f84011261496457600080fd5b5081356001600160401b0381111561497b57600080fd5b60208301915083602082850101111561450957600080fd5b6000806000608084860312156149a857600080fd5b6149b2858561493a565b925060608401356001600160401b038111156149cd57600080fd5b6149d986828701614952565b9497909650939450505050565b6000602082840312156149f857600080fd5b8135614a0381614876565b9392505050565b600080600060608486031215614a1f57600080fd5b8335614a2a81614876565b92506020840135614a3a81614876565b929592945050506040919091013590565b600060208284031215614a5d57600080fd5b5035919050565b60008060008060408587031215614a7a57600080fd5b84356001600160401b0380821115614a9157600080fd5b614a9d888389016147f1565b90965094506020870135915080821115614ab657600080fd5b50614ac3878288016147f1565b95989497509550505050565b60008060008060008060008060c0898b031215614aeb57600080fd5b8835614af681614876565b97506020890135614b0681614876565b9650604089013595506060890135945060808901356001600160401b0380821115614b3057600080fd5b614b3c8c838d016147f1565b909650945060a08b0135915080821115614b5557600080fd5b50614b628b828c016147f1565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b9257600080fd5b88356001600160401b0380821115614ba957600080fd5b614bb58c838d016147f1565b909a50985060208b0135915080821115614bce57600080fd5b614bda8c838d016147f1565b909850965060408b0135915080821115614bf357600080fd5b614bff8c838d016147f1565b909650945060608b0135915080821115614b5557600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c5057614c50614c18565b60405290565b604080519081016001600160401b0381118282101715614c5057614c50614c18565b604051601f8201601f191681016001600160401b0381118282101715614ca057614ca0614c18565b604052919050565b63ffffffff81168114610fee57600080fd5b803561489681614ca8565b60006001600160401b03821115614cde57614cde614c18565b5060051b60200190565b600082601f830112614cf957600080fd5b81356020614d0e614d0983614cc5565b614c78565b82815260059290921b84018101918181019086841115614d2d57600080fd5b8286015b84811015614d51578035614d4481614876565b8352918301918301614d31565b509695505050505050565b600082601f830112614d6d57600080fd5b81356020614d7d614d0983614cc5565b82815260059290921b84018101918181019086841115614d9c57600080fd5b8286015b84811015614d515780358352918301918301614da0565b600060e08284031215614dc957600080fd5b614dd1614c2e565b9050614ddc8261488b565b8152614dea6020830161488b565b6020820152614dfb6040830161488b565b604082015260608201356060820152614e1660808301614cba565b608082015260a08201356001600160401b0380821115614e3557600080fd5b614e4185838601614ce8565b60a084015260c0840135915080821115614e5a57600080fd5b50614e6784828501614d5c565b60c08301525092915050565b600060208284031215614e8557600080fd5b81356001600160401b03811115614e9b57600080fd5b614ea784828501614db7565b949350505050565b600060208284031215614ec157600080fd5b813560ff81168114614a0357600080fd5b8015158114610fee57600080fd5b600080600080600060808688031215614ef857600080fd5b85356001600160401b0380821115614f0f57600080fd5b9087019060e0828a031215614f2357600080fd5b90955060208701359080821115614f3957600080fd5b50614f46888289016147f1565b909550935050604086013591506060860135614f6181614ed2565b809150509295509295909350565b60008060408385031215614f8257600080fd5b8235614f8d81614876565b91506020830135614f9d81614876565b809150509250929050565b600060408284031215614fba57600080fd5b614fc2614c56565b905081356001600160401b0380821115614fdb57600080fd5b818401915084601f830112614fef57600080fd5b813560208282111561500357615003614c18565b615015601f8301601f19168201614c78565b9250818352868183860101111561502b57600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a0868803121561506857600080fd5b853561507381614876565b9450602086013561508381614876565b935060408601356001600160401b038082111561509f57600080fd5b6150ab89838a01614fa8565b945060608801359150808211156150c157600080fd5b506150ce88828901614fa8565b95989497509295608001359392505050565b600080604083850312156150f357600080fd5b82356150fe81614876565b915060208301356001600160401b0381111561511957600080fd5b61512585828601614ce8565b9150509250929050565b600081518084526020808501945080840160005b8381101561515f57815187529582019590820190600101615143565b509495945050505050565b602081526000614a03602083018461512f565b6000806020838503121561519057600080fd5b82356001600160401b038111156151a657600080fd5b61486a85828601614952565b600080604083850312156151c557600080fd5b82356151d081614876565b946020939093013593505050565b600080600080608085870312156151f457600080fd5b84356151ff81614876565b935060208501359250604085013561521681614876565b9396929550929360600135925050565b600081518084526020808501945080840160005b8381101561515f5781516001600160a01b03168752958201959082019060010161523a565b6040815260006152726040830185615226565b8281036020840152611220818561512f565b60008060006060848603121561529957600080fd5b83356152a481614876565b925060208401356001600160401b038111156152bf57600080fd5b6152cb86828701614fa8565b925050604084013590509250925092565b6000606082840312156152ee57600080fd5b614a03838361493a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156153385761533861530e565b5060010190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261538c57600080fd5b9190910192915050565b6000808335601e198436030181126153ad57600080fd5b8301803591506001600160401b038211156153c757600080fd5b6020019150600581901b360382131561450957600080fd5b6060810182356153ee81614876565b6001600160a01b03908116835260208401359061540a82614876565b166020830152604083013561541e81614ca8565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561547257600080fd5b8151614a0381614876565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b60006020828403121561553657600080fd5b8151614a0381614ed2565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261538c57600080fd5b6000602082840312156155b157600080fd5b8135614a0381614ed2565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a085015261561760e0850182615226565b905060c083015184820360c0860152611220828261512f565b602081526000614a0360208301846155bc565b60006020828403121561565557600080fd5b5051919050565b600082601f83011261566d57600080fd5b8151602061567d614d0983614cc5565b82815260059290921b8401810191818101908684111561569c57600080fd5b8286015b84811015614d5157805183529183019183016156a0565b600080604083850312156156ca57600080fd5b82516001600160401b03808211156156e157600080fd5b818501915085601f8301126156f557600080fd5b81516020615705614d0983614cc5565b82815260059290921b8401810191818101908984111561572457600080fd5b948201945b8386101561574b57855161573c81614876565b82529482019490820190615729565b9188015191965090935050508082111561576457600080fd5b506151258582860161565c565b600082198211156157845761578461530e565b500190565b60008282101561579b5761579b61530e565b500390565b6001600160a01b039384168152919092166020820152604081019190915260600190565b828152604060208201526000614ea760408301846155bc565b6000602082840312156157ef57600080fd5b8135614a0381614ca8565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561582581614876565b61582f81836157fa565b5060018101602083013561584281614876565b61584c81836157fa565b50604083013561585b81614ca8565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006158893683614db7565b92915050565b6020808252606e908201526000805160206159b583398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b82815260006020604081840152835180604085015260005b8181101561594b5785810183015185820160600152820161592f565b8181111561595d576000606083870101525b50601f01601f191692909201606001949350505050565b60006020828403121561598657600080fd5b81516001600160e01b031981168114614a0357600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a26469706673582212203a9863b190b0abcf799891a42203a11c6933a165f6897ec6ac670f95b48c927b64736f6c634300080c0033","sourceMap":"1137:46343:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43577:472;;;;;;:::i;:::-;;:::i;:::-;;;1014:25:184;;;1002:2;987:18;43577:472:2;;;;;;;;1131:182:3;;1194:119;1131:182;;46547:630:2;;;;;;:::i;:::-;;:::i;14140:1400::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4795:692::-;;;;;;:::i;:::-;;:::i;:::-;;5826:138:29;;;;;;:::i;:::-;;:::i;20110:571:2:-;;;;;;:::i;:::-;;:::i;3832:392:29:-;;;;;;:::i;:::-;;:::i;21527:243:2:-;;;;;;:::i;:::-;;:::i;40642:159::-;;;;;;:::i;:::-;-1:-1:-1;;;;;40743:26:2;40717:7;40743:26;;;:16;:26;;;;;:51;;;-1:-1:-1;;;40743:51:2;;;;;40642:159;44553:408;;;;;;:::i;:::-;;:::i;649:130:3:-;;699:80;649:130;;3318:607:2;;;;;;:::i;:::-;;:::i;19082:486::-;;;;;;:::i;:::-;;:::i;3363:46:3:-;;;;;;:::i;:::-;;;;;;;;;;;;;;18069:471:2;;;;;;:::i;:::-;;:::i;1703:49:3:-;;;;;;;;-1:-1:-1;;;;;9831:32:184;;;9813:51;;9801:2;9786:18;1703:49:3;9642:228:184;40405:147:2;;;;;;:::i;:::-;-1:-1:-1;;;;;40500:26:2;;;40474:7;40500:26;;;:16;:26;;;;;:45;;;;;40405:147;39718:123;;;;;;:::i;:::-;;:::i;:::-;;;10248:14:184;;10241:22;10223:41;;10211:2;10196:18;39718:123:2;10083:187:184;878:152:3;;939:91;878:152;;1911:49;;;;;1885:74:2;;1944:15;1885:74;;4299:136:29;;;:::i;44115:150:2:-;;;;;;:::i;:::-;;:::i;5606:149:29:-;;;;;;:::i;:::-;5724:7;;5695:1;:10;;;;;;;;5724:14;;;5723:24;;5606:149;5418:87;5491:7;;5418:87;;16982:353:2;;;;;;:::i;:::-;;:::i;20889:167::-;;;;;;:::i;:::-;;:::i;3159:46:3:-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;3159:46:3;;;39948:122:2;;;;;;:::i;:::-;;:::i;2071:101:42:-;;;:::i;2612:71:3:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;9720:1488:2;;;;;;:::i;:::-;;:::i;1825:37:29:-;;;;;-1:-1:-1;;;;;1825:37:29;;;1441:85:42;1513:6;;-1:-1:-1;;;;;1513:6:42;1441:85;;40891:368:2;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2027:104::-;;2088:42;2027:104;;6276:262;;;;;;:::i;:::-;;:::i;4904:62:3:-;;;;;;:::i;:::-;;;;;;;;;;;;;;1811:33;;;;;4607:50;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3852:81;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4451:39;;;;;;5466:66;;;;;;:::i;:::-;;;;;;;;;;;;;;40173:140:2;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40280:26:2;;;;;:16;:26;;;;;40273:33;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;40273:33:2;;;;;;;;;;40173:140;;;;;21632:13:184;;-1:-1:-1;;;;;21628:22:184;;;21610:41;;21711:4;21699:17;;;21693:24;21689:33;;;21667:20;;;21660:63;21771:17;;;21765:24;21791:10;21761:41;21739:20;;;21732:71;21560:2;21545:18;40173:140:2;21360:449:184;45391:560:2;;;;;;:::i;:::-;;:::i;2051:60:3:-;;2105:6;2051:60;;41484:1765:2;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;11533:2250::-;;;;;;:::i;:::-;;:::i;7541:578::-;;;;;;:::i;:::-;;:::i;5791:265::-;;;;;;:::i;:::-;;:::i;2321:198:42:-;;;;;;:::i;:::-;;:::i;39379:227:2:-;;;:::i;4911:437:29:-;;;;;;:::i;:::-;;:::i;43577:472:2:-;43704:24;;43659:7;;;43738:273;43758:21;;;43738:273;;;43800:27;43830:29;:44;43860:10;;43871:1;43860:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;43830:44:2;-1:-1:-1;;;;;43830:44:2;;;;;;;;;;;;;43800:74;;43914:15;43892:19;:37;43888:113;;;43967:19;43949:37;;43888:113;-1:-1:-1;43781:3:2;;;:::i;:::-;;;43738:273;;;-1:-1:-1;44027:15:2;43577:472;-1:-1:-1;;;43577:472:2:o;46547:630::-;46870:101;;;1194:119:3;46870:101:2;;;;24847:25:184;;;;-1:-1:-1;;;;;24946:15:184;;;24926:18;;;24919:43;24998:15;;;24978:18;;;24971:43;25050:15;;25030:18;;;25023:43;25082:19;;;25075:35;;;25126:19;;;;25119:35;;;46870:101:2;;;;;;;;;;24819:19:184;;;;46870:101:2;;;46847:134;;;;;-1:-1:-1;;;47096:17:2;:15;:17::i;:::-;47067:67;;-1:-1:-1;;;47067:67:2;;;25423:27:184;25466:11;;;25459:27;;;;25502:12;;;25495:28;;;25539:12;;47067:67:2;;;;;;-1:-1:-1;;47067:67:2;;;;;;47057:78;;47067:67;47057:78;;;;;46547:630;-1:-1:-1;;;;;;;;46547:630:2:o;14140:1400::-;5724:7:29;;14305:16:2;;1520:1;;5695:10:29;5724:14;;;5723:24;2767:14;2759:52;;;;-1:-1:-1;;;2759:52:29;;;;;;;:::i;:::-;;;;;;;;;14333:32:2::1;14382:22:::0;-1:-1:-1;;;;;14368:44:2;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;14368:44:2::1;-1:-1:-1::0;14453:10:2::1;14422:16;14441:23:::0;;;:11:::1;:23;::::0;;;;;14333:79;;-1:-1:-1;;;;;;14441:23:2;;::::1;::::0;14475:1027:::1;14495:33:::0;;::::1;14475:1027;;;14604:22;;14627:1;14604:25;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:32;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;:39;;14557:22;;14580:1;14557:25;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:36;::::0;;::::1;:::i;:::-;:43;;:86;14549:155;;;::::0;-1:-1:-1;;;14549:155:2;;27580:2:184;14549:155:2::1;::::0;::::1;27562:21:184::0;27619:2;27599:18;;;27592:30;27658:34;27638:18;;;27631:62;27729:26;27709:18;;;27702:54;27773:19;;14549:155:2::1;27378:420:184::0;14549:155:2::1;14766:10;14726:22:::0;;14749:1;14726:25;;::::1;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:36;::::0;;;;;::::1;;;:::i;:::-;-1:-1:-1::0;;;;;14726:50:2::1;;14718:123;;;::::0;-1:-1:-1;;;14718:123:2;;28005:2:184;14718:123:2::1;::::0;::::1;27987:21:184::0;28044:2;28024:18;;;28017:30;28083:34;28063:18;;;28056:62;28154:30;28134:18;;;28127:58;28202:19;;14718:123:2::1;27803:424:184::0;14718:123:2::1;15182:309;15240:10;15278:8;15316:22;;15339:1;15316:25;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:36;::::0;;;;;::::1;;;:::i;:::-;15382:22;;15405:1;15382:25;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:36;::::0;;::::1;:::i;:::-;15182:309;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;15444:22:2;;-1:-1:-1;15444:22:2;;-1:-1:-1;15467:1:2;;-1:-1:-1;15444:25:2;;::::1;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:32;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;15182:309;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;15182:31:2::1;::::0;-1:-1:-1;;;15182:309:2:i:1;:::-;15161:15;15177:1;15161:18;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:330;14530:3;::::1;::::0;::::1;:::i;:::-;;;;14475:1027;;;-1:-1:-1::0;15518:15:2;;14140:1400;-1:-1:-1;;;;;14140:1400:2:o;4795:692::-;4955:23;4967:10;4955:11;:23::i;:::-;4954:24;4946:111;;;;-1:-1:-1;;;4946:111:2;;28434:2:184;4946:111:2;;;28416:21:184;28473:2;28453:18;;;28446:30;28512:34;28492:18;;;28485:62;28583:34;28563:18;;;28556:62;-1:-1:-1;;;28634:19:184;;;28627:41;28685:19;;4946:111:2;28232:478:184;4946:111:2;5067:59;5087:10;5099:26;5067:19;:59::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;5248:70:2;5258:10;;5282:23;5315:1;5248:9;:70::i;:::-;5375:10;-1:-1:-1;;;;;5356:58:2;;5387:26;5356:58;;;;;;:::i;:::-;;;;;;;;5456:10;-1:-1:-1;;;;;5429:51:2;;5468:11;;5429:51;;;;;;;:::i;:::-;;;;;;;;4936:551;4795:692;;;:::o;5826:138:29:-;2285:14;;;;;;;;;-1:-1:-1;;;;;2285:14:29;-1:-1:-1;;;;;2285:23:29;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2271:39:29;:10;-1:-1:-1;;;;;2271:39:29;;2263:94;;;;-1:-1:-1;;;2263:94:29;;;;;;;:::i;:::-;5920:37:::1;5939:17;5920:18;:37::i;:::-;5826:138:::0;:::o;20110:571:2:-;2353:10;-1:-1:-1;;;;;2375:15:2;2353:38;;;:80;;-1:-1:-1;2395:10:2;-1:-1:-1;;;;;2417:15:2;2395:38;;2353:80;2332:182;;;;-1:-1:-1;;;2332:182:2;;;;;;;:::i;:::-;20338:19:::1;20350:6;20338:11;:19::i;:::-;20334:341;;;-1:-1:-1::0;;;;;20392:19:2;;::::1;20373:16;20392:19:::0;;;:11:::1;:19;::::0;;;;;::::1;20489:175;20392:19:::0;20404:6;20609:8;20643:6;20489:23:::1;:175::i;:::-;20359:316;20334:341;20110:571:::0;;;:::o;3832:392:29:-;2125:14;;:35;;-1:-1:-1;;;2125:35:29;;2149:10;2125:35;;;9813:51:184;-1:-1:-1;;;;;2125:14:29;;;;:23;;9786:18:184;;2125:35:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2117:88;;;;-1:-1:-1;;;2117:88:29;;;;;;;:::i;:::-;4064:7:::1;::::0;4034:25;;::::1;4033:38;4025:107;;;::::0;-1:-1:-1;;;4025:107:29;;31751:2:184;4025:107:29::1;::::0;::::1;31733:21:184::0;31790:2;31770:18;;;31763:30;31829:34;31809:18;;;31802:62;31900:26;31880:18;;;31873:54;31944:19;;4025:107:29::1;31549:420:184::0;4025:107:29::1;4142:7;:25:::0;;;4182:35:::1;::::0;1014:25:184;;;4189:10:29::1;::::0;4182:35:::1;::::0;1002:2:184;987:18;4182:35:29::1;;;;;;;;3832:392:::0;:::o;21527:243:2:-;1334:13:42;:11;:13::i;:::-;21695:68:2::1;21729:10;;21741:21;;21695:33;:68::i;44553:408::-:0;-1:-1:-1;;;;;44800:19:2;;44708:7;44800:19;;;:11;:19;;;;;;44873:81;44812:6;44800:19;44937:8;44947:6;44873:35;:81::i;:::-;44866:88;44553:408;-1:-1:-1;;;;;44553:408:2:o;3318:607::-;3111:19:46;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:46;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:46;1476:19:50;:23;;;3219:66:46;;-1:-1:-1;3268:12:46;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:46;;32176:2:184;3157:201:46;;;32158:21:184;32215:2;32195:18;;;32188:30;32254:34;32234:18;;;32227:62;-1:-1:-1;;;32305:18:184;;;32298:44;32359:19;;3157:201:46;31974:410:184;3157:201:46;3368:12;:16;;-1:-1:-1;;3368:16:46;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:46;;;;;3394:65;3619:55:2::1;3637:15;3654:19;3619:17;:55::i;:::-;3704:27;:25;:27::i;:::-;3684:17;:47:::0;3741:32:::1;3760:12:::0;3741:18:::1;:32::i;:::-;3783:55;3812:25;3783:28;:55::i;:::-;3848:70;3882:11;;3895:22;;3848:33;:70::i;:::-;3483:14:46::0;3479:99;;;3529:5;3513:21;;-1:-1:-1;;3513:21:46;;;3553:14;;-1:-1:-1;32541:36:184;;3553:14:46;;32529:2:184;32514:18;3553:14:46;;;;;;;3479:99;3101:483;3318:607:2;;;;;;;;:::o;19082:486::-;2353:10;-1:-1:-1;;;;;2375:15:2;2353:38;;;:80;;-1:-1:-1;2395:10:2;-1:-1:-1;;;;;2417:15:2;2395:38;;2353:80;2332:182;;;;-1:-1:-1;;;2332:182:2;;;;;;;:::i;:::-;19310:19:::1;19322:6;19310:11;:19::i;:::-;19306:256;;;-1:-1:-1::0;;;;;19364:19:2;;::::1;19345:16;19364:19:::0;;;:11:::1;:19;::::0;;;;;::::1;19454:97;19364:19:::0;19376:6;19525:8;19543:6;19454:23:::1;:97::i;18069:471::-:0;5724:7:29;;1664:1:2;;5695:10:29;5724:14;;;5723:24;2767:14;2759:52;;;;-1:-1:-1;;;2759:52:29;;;;;;;:::i;:::-;1815:1:49::1;2569:7;;:19;;2561:63;;;::::0;-1:-1:-1;;;2561:63:49;;32790:2:184;2561:63:49::1;::::0;::::1;32772:21:184::0;32829:2;32809:18;;;32802:30;32868:33;32848:18;;;32841:61;32919:18;;2561:63:49::1;32588:355:184::0;2561:63:49::1;1815:1;2699:7;:18:::0;18366:9:2::2;18361:173;18381:22:::0;;::::2;18361:173;;;18424:99;18450:11;;18462:1;18450:14;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;18466:6;;18473:1;18466:9;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;18477:22;;18500:1;18477:25;;;;;;;:::i;:::-;;;;;;;18504:15;;18520:1;18504:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18424:25;:99::i;:::-;18405:3;::::0;::::2;:::i;:::-;;;18361:173;;;-1:-1:-1::0;;1772:1:49::1;2872:7;:22:::0;-1:-1:-1;;;;;;;;18069:471:2:o;39718:123::-;-1:-1:-1;;;;;39800:19:2;;;39776:4;39800:19;;;:11;:19;;;;;;;:33;;;39718:123::o;4299:136:29:-;2125:14;;:35;;-1:-1:-1;;;2125:35:29;;2149:10;2125:35;;;9813:51:184;-1:-1:-1;;;;;2125:14:29;;;;:23;;9786:18:184;;2125:35:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2117:88;;;;-1:-1:-1;;;2117:88:29;;;;;;;:::i;:::-;-1:-1:-1;;4349:7:29::1;:27:::0;;;4391:37:::1;::::0;1014:25:184;;;4398:10:29::1;::::0;4391:37:::1;::::0;1002:2:184;987:18;4391:37:29::1;;;;;;;4299:136::o:0;44115:150:2:-;44199:7;44246:10;44235:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;44225:33;;;;;;44218:40;;44115:150;;;:::o;16982:353::-;5724:7:29;;1664:1:2;;5695:10:29;5724:14;;;5723:24;2767:14;2759:52;;;;-1:-1:-1;;;2759:52:29;;;;;;;:::i;:::-;1815:1:49::1;2569:7;;:19;;2561:63;;;::::0;-1:-1:-1;;;2561:63:49;;32790:2:184;2561:63:49::1;::::0;::::1;32772:21:184::0;32829:2;32809:18;;;32802:30;32868:33;32848:18;;;32841:61;32919:18;;2561:63:49::1;32588:355:184::0;2561:63:49::1;1815:1;2699:7;:18:::0;17244:84:2::2;17270:10:::0;17282:6;;17290:20;17312:15;17244:25:::2;:84::i;:::-;-1:-1:-1::0;;1772:1:49::1;2872:7;:22:::0;-1:-1:-1;;;;16982:353:2:o;20889:167::-;1334:13:42;:11;:13::i;:::-;20992:57:2::1;21021:27;20992:28;:57::i;39948:122::-:0;-1:-1:-1;;;;;40030:33:2;;;40007:4;40030:21;;;:11;:21;;;;;;;;;:33;;39948:122::o;2071:101:42:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;9720:1488:2:-;10074:15;10039:24;:31;;;:50;;10018:162;;;;-1:-1:-1;;;10018:162:2;;35326:2:184;10018:162:2;;;35308:21:184;35365:2;35345:18;;;35338:30;35404:34;35384:18;;;35377:62;35475:34;35455:18;;;35448:62;-1:-1:-1;;;35526:19:184;;;35519:32;35568:19;;10018:162:2;35124:469:184;10018:162:2;10199:19;10211:6;10199:11;:19::i;:::-;10198:20;10190:110;;;;-1:-1:-1;;;10190:110:2;;35800:2:184;10190:110:2;;;35782:21:184;35839:2;35819:18;;;35812:30;35878:34;35858:18;;;35851:62;35949:34;35929:18;;;35922:62;-1:-1:-1;;;36000:19:184;;;35993:44;36054:19;;10190:110:2;35598:481:184;10190:110:2;10318:20;10329:8;10318:10;:20::i;:::-;10310:114;;;;-1:-1:-1;;;10310:114:2;;36286:2:184;10310:114:2;;;36268:21:184;36325:2;36305:18;;;36298:30;36364:34;36344:18;;;36337:62;36435:34;36415:18;;;36408:62;-1:-1:-1;;;36486:19:184;;;36479:48;36544:19;;10310:114:2;36084:485:184;10310:114:2;10505:26;10534:11;:19;10546:6;-1:-1:-1;;;;;10534:19:2;-1:-1:-1;;;;;10534:19:2;;;;;;;;;;;;;10505:48;;10563:24;10590:164;10639:6;10659:18;10691:8;10713:24;:31;;;10590:35;:164::i;:::-;-1:-1:-1;;;;;10788:19:2;;;;;;:11;:19;;;;;10831:1;10810:22;;10788:44;;10978:34;;10563:191;;-1:-1:-1;10907:106:2;;10800:6;;10563:191;;10907:44;:106::i;:::-;11132:69;11142:6;11150:8;11160:26;11188:12;11132:9;:69::i;:::-;9970:1238;;9720:1488;;;;;:::o;40891:368::-;41010:16;41038:23;41078:10;:17;-1:-1:-1;;;;;41064:32:2;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;41064:32:2;;41038:58;;41111:9;41106:124;41130:10;:17;41126:1;:21;41106:124;;;-1:-1:-1;;;;;41180:24:2;;;;;;:14;:24;;;;;41205:13;;41180:24;;;41205:10;;41216:1;;41205:13;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;41180:39:2;-1:-1:-1;;;;;41180:39:2;;;;;;;;;;;;;41168:6;41175:1;41168:9;;;;;;;;:::i;:::-;;;;;;;;;;:51;41149:3;;;:::i;:::-;;;41106:124;;6276:262;6367:22;6378:10;6367;:22::i;:::-;6359:106;;;;-1:-1:-1;;;6359:106:2;;36776:2:184;6359:106:2;;;36758:21:184;36815:2;36795:18;;;36788:30;36854:34;36834:18;;;36827:62;36925:34;36905:18;;;36898:62;-1:-1:-1;;;36976:19:184;;;36969:38;37024:19;;6359:106:2;36574:475:184;6359:106:2;6507:10;-1:-1:-1;;;;;6480:51:2;;6519:11;;6480:51;;;;;;;:::i;:::-;;;;;;;;6276:262;;:::o;45391:560::-;45673:78;;;939:91:3;45673:78:2;;;;37313:25:184;;;;-1:-1:-1;;;;;37412:15:184;;;37392:18;;;37385:43;37464:15;;37444:18;;;37437:43;37496:18;;;37489:34;;;37539:19;;;;37532:35;;;45673:78:2;;;;;;;;;;37285:19:184;;;;45673:78:2;;;45650:111;;;;;-1:-1:-1;;;45874:17:2;:15;:17::i;:::-;45845:65;;-1:-1:-1;;;45845:65:2;;;25423:27:184;25466:11;;;25459:27;;;;25502:12;;;25495:28;;;25539:12;;45845:65:2;;;;;;-1:-1:-1;;45845:65:2;;;;;;45835:76;;45845:65;45835:76;;;;;45391:560;-1:-1:-1;;;;;;;45391:560:2:o;41484:1765::-;41685:38;;-1:-1:-1;;;41685:38:2;;-1:-1:-1;;;;;9831:32:184;;;41685:38:2;;;9813:51:184;41551:18:2;;;;-1:-1:-1;;41685:15:2;:30;;;;;;9786:18:184;;41685:38:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;41831:35;;-1:-1:-1;;;41831:35:2;;-1:-1:-1;;;;;9831:32:184;;;41831:35:2;;;9813:51:184;41666:57:2;;-1:-1:-1;;;;;41831:15:2;:27;;;;;;9786:18:184;;41831:35:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;41831:35:2;;;;;;;;;;;;:::i;:::-;41733:133;;;;41979:1;41966:9;:14;41962:98;;42004:21;;42027;;-1:-1:-1;41484:1765:2;-1:-1:-1;;;41484:1765:2:o;41962:98::-;42070:29;42109:23;42147:21;:28;42179:1;42147:33;42143:1062;;;42282:18;;;42298:1;42282:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;42323:16:2;;;42337:1;42323:16;;;;;;;;;42269:31;;-1:-1:-1;42337:1:2;-1:-1:-1;42323:16:2;;;;;;;;;;;-1:-1:-1;42323:16:2;42314:25;;2088:42;42353:10;42364:1;42353:13;;;;;;;;:::i;:::-;;;;;;:38;-1:-1:-1;;;;;42353:38:2;;;-1:-1:-1;;;;;42353:38:2;;;;;42425:9;42405:6;42412:1;42405:9;;;;;;;;:::i;:::-;;;;;;:30;;;;;42143:1062;;;42583:28;;:32;;42614:1;42583:32;:::i;:::-;-1:-1:-1;;;;;42567:49:2;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;42567:49:2;;42554:62;;42653:10;:17;-1:-1:-1;;;;;42639:32:2;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;42639:32:2;;42630:41;;42774:9;42769:219;42793:21;:28;42789:1;:32;42769:219;;;42859:21;42881:1;42859:24;;;;;;;;:::i;:::-;;;;;;;42843:10;42854:1;42843:13;;;;;;;;:::i;:::-;;;;;;:40;-1:-1:-1;;;;;42843:40:2;;;-1:-1:-1;;;;;42843:40:2;;;;;42913:21;42935:1;42913:24;;;;;;;;:::i;:::-;;;;;;;42901:6;42908:1;42901:9;;;;;;;;:::i;:::-;;;;;;;;;;:36;42968:3;;42769:219;;;;2088:42;43072:10;43103:1;43083:10;:17;:21;;;;:::i;:::-;43072:33;;;;;;;;:::i;:::-;;;;;;:58;-1:-1:-1;;;;;43072:58:2;;;-1:-1:-1;;;;;43072:58:2;;;;;43184:9;43144:6;43171:1;43151:10;:17;:21;;;;:::i;:::-;43144:29;;;;;;;;:::i;:::-;;;;;;:50;;;;;42143:1062;43223:10;;43235:6;;-1:-1:-1;41484:1765:2;-1:-1:-1;;;;;41484:1765:2:o;11533:2250::-;5724:7:29;;11636:32:2;;1520:1;;5695:10:29;5724:14;;;5723:24;2767:14;2759:52;;;;-1:-1:-1;;;2759:52:29;;;;;;;:::i;:::-;11688:19:2::1;11700:6;11688:11;:19::i;:::-;11680:100;;;::::0;-1:-1:-1;;;11680:100:2;;40149:2:184;11680:100:2::1;::::0;::::1;40131:21:184::0;40188:2;40168:18;;;40161:30;;;40227:34;40207:18;;;40200:62;40298:34;40278:18;;;40271:62;-1:-1:-1;;;40349:19:184;;;40342:35;40394:19;;11680:100:2::1;39947:472:184::0;11680:100:2::1;11799:18;11810:6;11799:10;:18::i;:::-;11798:19;11790:93;;;::::0;-1:-1:-1;;;11790:93:2;;40626:2:184;11790:93:2::1;::::0;::::1;40608:21:184::0;40665:2;40645:18;;;40638:30;40704:34;40684:18;;;40677:62;40775:31;40755:18;;;40748:59;40824:19;;11790:93:2::1;40424:425:184::0;11790:93:2::1;-1:-1:-1::0;;;;;11901:20:2;::::1;11893:93;;;::::0;-1:-1:-1;;;11893:93:2;;41056:2:184;11893:93:2::1;::::0;::::1;41038:21:184::0;41095:2;41075:18;;;41068:30;41134:34;41114:18;;;41107:62;41205:30;41185:18;;;41178:58;41253:19;;11893:93:2::1;40854:424:184::0;11893:93:2::1;-1:-1:-1::0;;;;;12015:19:2;;::::1;11996:16;12015:19:::0;;;:11:::1;:19;::::0;;;;;;;::::1;::::0;12065:10:::1;:20;::::0;:62:::1;;-1:-1:-1::0;12105:10:2::1;-1:-1:-1::0;;;;;12105:22:2;::::1;;12065:62;:141;;;-1:-1:-1::0;;;;;;12161:26:2;;::::1;;::::0;;;:16:::1;:26;::::0;;;;:45:::1;;::::0;::::1;12147:10;:59;12065:141;12044:249;;;::::0;-1:-1:-1;;;12044:249:2;;41485:2:184;12044:249:2::1;::::0;::::1;41467:21:184::0;41524:2;41504:18;;;41497:30;41563:34;41543:18;;;41536:62;41634:31;41614:18;;;41607:59;41683:19;;12044:249:2::1;41283:425:184::0;12044:249:2::1;12471:29;12502:23:::0;12529:28:::1;12550:6;12529:20;:28::i;:::-;12470:87:::0;;-1:-1:-1;12470:87:2;-1:-1:-1;12655:10:2::1;-1:-1:-1::0;;;;;12655:20:2;::::1;;12651:96;;12727:8;-1:-1:-1::0;;;;;12696:40:2::1;12719:6;-1:-1:-1::0;;;;;12696:40:2::1;;;;;;;;;;;12651:96;12821:8;-1:-1:-1::0;;;;;12795:35:2::1;12813:6;-1:-1:-1::0;;;;;12795:35:2::1;;;;;;;;;;;-1:-1:-1::0;;;;;12840:19:2;::::1;12870:1;12840:19:::0;;;:11:::1;:19;::::0;;;;:32;;-1:-1:-1;;;;;;12840:32:2::1;::::0;;12976:17;;12972:772:::1;;13032:16;::::0;;13046:1:::1;13032:16:::0;;::::1;::::0;::::1;::::0;;;;-1:-1:-1;12972:772:2::1;;;13111:10;:17;-1:-1:-1::0;;;;;13097:32:2::1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;13097:32:2::1;;13079:50;;13148:9;13143:591;13167:10;:17;13163:1;:21;13143:591;;;13245:18;::::0;;13261:1:::1;13245:18:::0;;;;;::::1;::::0;;;13209:33:::1;::::0;13245:18:::1;::::0;;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;13312:16:2::1;::::0;;13326:1:::1;13312:16:::0;;;;;::::1;::::0;;;13209:54;;-1:-1:-1;13281:28:2::1;::::0;13312:16;-1:-1:-1;13312:16:2::1;::::0;;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13312:16:2::1;13281:47;;13366:10;13377:1;13366:13;;;;;;;;:::i;:::-;;;;;;;13346:14;13361:1;13346:17;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1::0;;;;;13346:33:2::1;;;-1:-1:-1::0;;;;;13346:33:2::1;;;::::0;::::1;13414:6;13421:1;13414:9;;;;;;;;:::i;:::-;;;;;;;13397:11;13409:1;13397:14;;;;;;;;:::i;:::-;;;;;;:26;;;::::0;::::1;13463:256;13525:6;13563:8;13605:6;13645:14;13689:11;13463:31;:256::i;:::-;13442:15;13458:1;13442:18;;;;;;;;:::i;:::-;;;;;;:277;;;::::0;::::1;13191:543;;13186:3;;;;;:::i;:::-;;;;13143:591;;;;12972:772;13754:22;;;11533:2250:::0;;;;:::o;7541:578::-;7714:23;7726:10;7714:11;:23::i;:::-;7713:24;7705:103;;;;-1:-1:-1;;;7705:103:2;;41915:2:184;7705:103:2;;;41897:21:184;41954:2;41934:18;;;41927:30;41993:34;41973:18;;;41966:62;42064:34;42044:18;;;42037:62;-1:-1:-1;;;42115:19:184;;;42108:33;42158:19;;7705:103:2;41713:470:184;7705:103:2;7826:20;7837:8;7826:10;:20::i;:::-;7818:103;;;;-1:-1:-1;;;7818:103:2;;42390:2:184;7818:103:2;;;42372:21:184;42429:2;42409:18;;;42402:30;42468:34;42448:18;;;42441:62;42539:34;42519:18;;;42512:62;-1:-1:-1;;;42590:19:184;;;42583:37;42637:19;;7818:103:2;42188:474:184;7818:103:2;8039:73;8049:10;8061:8;8071:26;8099:12;8039:9;:73::i;5791:265::-;5894:22;5905:10;5894;:22::i;:::-;5886:102;;;;-1:-1:-1;;;5886:102:2;;42869:2:184;5886:102:2;;;42851:21:184;42908:2;42888:18;;;42881:30;42947:34;42927:18;;;42920:62;43018:34;42998:18;;;42991:62;-1:-1:-1;;;43069:19:184;;;43062:34;43113:19;;5886:102:2;42667:471:184;5886:102:2;5998:51;6018:10;6030:18;5998:19;:51::i;2321:198:42:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:42;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:42;;43345:2:184;2401:73:42::1;::::0;::::1;43327:21:184::0;43384:2;43364:18;;;43357:30;43423:34;43403:18;;;43396:62;-1:-1:-1;;;43474:18:184;;;43467:36;43520:19;;2401:73:42::1;43143:402:184::0;2401:73:42::1;2484:28;2503:8;2484:18;:28::i;39379:227:2:-:0;39427:7;39467:17;39450:13;:34;39446:154;;;-1:-1:-1;39507:17:2;;;39379:227::o;39446:154::-;39562:27;:25;:27::i;:::-;39555:34;;39379:227;:::o;4911:437:29:-;2285:14;;;;;;;;;-1:-1:-1;;;;;2285:14:29;-1:-1:-1;;;;;2285:23:29;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2271:39:29;:10;-1:-1:-1;;;;;2271:39:29;;2263:94;;;;-1:-1:-1;;;2263:94:29;;;;;;;:::i;:::-;5164:7:::1;;5163:8;5141:15;5140:16;5128:7;;5127:8;5126:31;5125:47;5104:150;;;::::0;-1:-1:-1;;;5104:150:29;;43752:2:184;5104:150:29::1;::::0;::::1;43734:21:184::0;43791:2;43771:18;;;43764:30;43830:34;43810:18;;;43803:62;43901:26;43881:18;;;43874:54;43945:19;;5104:150:29::1;43550:420:184::0;5104:150:29::1;5264:7;:25:::0;;;5304:37:::1;::::0;1014:25:184;;;5313:10:29::1;::::0;5304:37:::1;::::0;1002:2:184;987:18;5304:37:29::1;868:177:184::0;33099:2938:2;33316:7;-1:-1:-1;;;;;33343:20:2;;33335:113;;;;-1:-1:-1;;;33335:113:2;;44177:2:184;33335:113:2;;;44159:21:184;44216:2;44196:18;;;44189:30;44255:34;44235:18;;;44228:62;44326:34;44306:18;;;44299:62;-1:-1:-1;;;44377:19:184;;;44370:47;44434:19;;33335:113:2;43975:484:184;33335:113:2;33466:17;;33458:112;;;;-1:-1:-1;;;33458:112:2;;44666:2:184;33458:112:2;;;44648:21:184;44705:2;44685:18;;;44678:30;44744:34;44724:18;;;44717:62;44815:34;44795:18;;;44788:62;-1:-1:-1;;;44866:19:184;;;44859:44;44920:19;;33458:112:2;44464:481:184;33458:112:2;33728:9;33723:1588;33747:10;:17;33743:1;:21;33723:1588;;;-1:-1:-1;;;;;33831:22:2;;;33827:264;;33873:203;33929:8;33967:6;34005:10;34016:1;34005:13;;;;;;;;:::i;:::-;;;;;;;34048:6;34055:1;34048:9;;;;;;;;:::i;:::-;;;;;;;33873:23;:203::i;:::-;2088:42;-1:-1:-1;;;;;34182:39:2;:10;34193:1;34182:13;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;34182:39:2;;34178:1091;;;34690:15;-1:-1:-1;;;;;34690:28:2;;34719:6;34727;34734:1;34727:9;;;;;;;;:::i;:::-;;;;;;;34690:47;;;;;;;;;;;;;;;-1:-1:-1;;;;;45142:32:184;;;;45124:51;;45206:2;45191:18;;45184:34;45112:2;45097:18;;44950:274;34690:47:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34178:1091;;;34815:10;-1:-1:-1;;;;;34805:20:2;:6;-1:-1:-1;;;;;34805:20:2;;:84;;;;34830:15;-1:-1:-1;;;;;34830:44:2;;34875:10;34886:1;34875:13;;;;;;;;:::i;:::-;;;;;;;34830:59;;;;;;;;;;;;;;-1:-1:-1;;;;;9831:32:184;;;;9813:51;;9801:2;9786:18;;9642:228;34830:59:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;34829:60;34805:84;34776:287;;;;-1:-1:-1;;;34776:287:2;;45431:2:184;34776:287:2;;;45413:21:184;45470:3;45450:18;;;45443:31;;;45510:34;45490:18;;;45483:62;45581:34;45561:18;;;45554:62;45653:34;45632:19;;;45625:63;45725:34;45704:19;;;45697:63;-1:-1:-1;;;45776:19:184;;;45769:35;45821:19;;34776:287:2;45229:617:184;34776:287:2;35192:15;-1:-1:-1;;;;;35192:28:2;;35221:6;35229:10;35240:1;35229:13;;;;;;;;:::i;:::-;;;;;;;35244:6;35251:1;35244:9;;;;;;;;:::i;:::-;;;;;;;35192:62;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34178:1091;35295:3;;33723:1588;;;-1:-1:-1;;;;;;35398:35:2;;35382:13;35398:35;;;:27;:35;;;;;;;;;;;35443:37;35398:35;35443:37;:::i;:::-;;;;;;35491:28;35522:257;;;;;;;;35555:6;-1:-1:-1;;;;;35522:257:2;;;;;35588:8;-1:-1:-1;;;;;35522:257:2;;;;;35622:10;-1:-1:-1;;;;;35522:257:2;;;;;35653:5;35522:257;;;;35691:12;35522:257;;;;;;35730:10;35522:257;;;;35762:6;35522:257;;;35491:288;;35790:22;35815:35;35839:10;35815:23;:35::i;:::-;35898:34;;;;:18;:34;;;;;;;:41;;-1:-1:-1;;35898:41:2;35935:4;35898:41;;;35955:44;35790:60;;-1:-1:-1;35955:44:2;;;;35790:60;;35988:10;;35955:44;:::i;:::-;;;;;;;;36016:14;33099:2938;-1:-1:-1;;;;;;;;33099:2938:2:o;22246:717::-;1944:15;22378:43;;;;;;;;:::i;:::-;:79;;;;22357:234;;;;-1:-1:-1;;;22357:234:2;;47044:2:184;22357:234:2;;;47026:21:184;47083:3;47063:18;;;47056:31;47123:34;47103:18;;;47096:62;47194:34;47174:18;;;47167:62;47266:34;47245:19;;;47238:63;-1:-1:-1;;;47317:19:184;;;47310:43;47370:19;;22357:234:2;46842:553:184;22357:234:2;-1:-1:-1;;;;;22669:26:2;;;;;;:16;:26;;;;;;;:51;;;-1:-1:-1;;;22669:51:2;;;;;22622:43;;;;;;;;;:::i;:::-;:98;;;;22601:228;;;;-1:-1:-1;;;22601:228:2;;47602:2:184;22601:228:2;;;47584:21:184;47641:2;47621:18;;;47614:30;47680:34;47660:18;;;47653:62;47751:34;47731:18;;;47724:62;-1:-1:-1;;;47802:19:184;;;47795:50;47862:19;;22601:228:2;47400:487:184;22601:228:2;-1:-1:-1;;;;;22839:26:2;;;;;;:16;:26;;;;;22868:18;;22839:47;22868:18;22839:26;:47;:::i;:::-;-1:-1:-1;;22901:55:2;;22925:10;;22901:55;;;;22937:18;;22901:55;:::i;23937:2700::-;5724:7:29;;1383:1:2;;5695::29;5724:14;;;5723:24;2767:14;2759:52;;;;-1:-1:-1;;;2759:52:29;;;;;;;:::i;:::-;-1:-1:-1;;;;;24320:26:2;;::::1;24290:27;24320:26:::0;;;:16:::1;:26;::::0;;;;:45:::1;;::::0;::::1;24782:33:::0;;;::::1;::::0;:70:::1;;-1:-1:-1::0;24819:10:2::1;-1:-1:-1::0;;;;;24819:33:2;::::1;;;24782:70;:96;;;;-1:-1:-1::0;24856:10:2::1;-1:-1:-1::0;;;;;24856:22:2;::::1;;;24782:96;24778:1267;;;24998:15;24961:26;:33;;;:52;;24936:166;;;::::0;-1:-1:-1;;;24936:166:2;;49057:2:184;24936:166:2::1;::::0;::::1;49039:21:184::0;49096:2;49076:18;;;49069:30;49135:34;49115:18;;;49108:62;49206:25;49186:18;;;49179:53;49249:19;;24936:166:2::1;48855:419:184::0;24936:166:2::1;-1:-1:-1::0;;;;;25234:50:2;::::1;;::::0;;;:29:::1;:50;::::0;;;;;;;:64;;;;;;;;;::::1;;25233:65;25208:179;;;::::0;-1:-1:-1;;;25208:179:2;;49481:2:184;25208:179:2::1;::::0;::::1;49463:21:184::0;49520:2;49500:18;;;49493:30;49559:34;49539:18;;;49532:62;49630:25;49610:18;;;49603:53;49673:19;;25208:179:2::1;49279:419:184::0;25208:179:2::1;-1:-1:-1::0;;;;;25401:50:2;::::1;;::::0;;;:29:::1;:50;::::0;;;;;;;:64;;;;;;;:71;;-1:-1:-1;;25401:71:2::1;25468:4;25401:71;::::0;;25729:33;::::1;::::0;25557:219:::1;::::0;25612:6;;25636:8;;25431:19;;25452:12;;25557:37:::1;:219::i;:::-;25528:248;;25849:185;25911:19;25948:18;25984:26;:36;;;25849:44;:185::i;:::-;24880:1165;24778:1267;-1:-1:-1::0;;;;;26148:19:2;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;:30;;-1:-1:-1;;;;;;26148:30:2::1;::::0;;::::1;::::0;;::::1;::::0;;26193:33;::::1;::::0;26148:19;26193:33:::1;26238:29;26269:23:::0;26308:28:::1;26329:6;26308:20;:28::i;:::-;26237:99;;;;26352:9;26347:284;26371:10;:17;26367:1;:21;26347:284;;;26405:183;26457:8;26491:6;26525:10;26536:1;26525:13;;;;;;;;:::i;:::-;;;;;;;26564:6;26571:1;26564:9;;;;;;;;:::i;:::-;;;;;;;26405:23;:183::i;:::-;26615:3;;26347:284;;6024:360:29::0;-1:-1:-1;;;;;6127:40:29;;6106:160;;;;-1:-1:-1;;;6106:160:29;;49905:2:184;6106:160:29;;;49887:21:184;49944:2;49924:18;;;49917:30;49983:34;49963:18;;;49956:62;50054:34;50034:18;;;50027:62;-1:-1:-1;;;50105:19:184;;;50098:40;50155:19;;6106:160:29;49703:477:184;6106:160:29;6299:14;;6281:52;;;-1:-1:-1;;;;;6299:14:29;;;50445:34:184;;50515:15;;;50510:2;50495:18;;50488:43;6281:52:29;;50380:18:184;6281:52:29;;;;;;;6343:14;:34;;-1:-1:-1;;;;;;6343:34:29;-1:-1:-1;;;;;6343:34:29;;;;;;;;;;6024:360::o;32323:308:2:-;-1:-1:-1;;;;;32506:24:2;;;;;;;:14;:24;;;;;;;;:34;;;;;;;;;;;:44;;32544:6;;32506:24;:44;;32544:6;;32506:44;:::i;:::-;;;;;;;;32589:8;-1:-1:-1;;;;;32565:59:2;;32599:6;32607:8;32617:6;32565:59;;;;;;;;:::i;1599:130:42:-;1513:6;;-1:-1:-1;;;;;1513:6:42;929:10:51;1662:23:42;1654:68;;;;-1:-1:-1;;;1654:68:42;;50744:2:184;1654:68:42;;;50726:21:184;;;50763:18;;;50756:30;50822:34;50802:18;;;50795:62;50874:18;;1654:68:42;50542:356:184;37511:1259:2;37693:51;;;37672:172;;;;-1:-1:-1;;;37672:172:2;;51105:2:184;37672:172:2;;;51087:21:184;51144:2;51124:18;;;51117:30;51183:34;51163:18;;;51156:62;51254:34;51234:18;;;51227:62;-1:-1:-1;;;51305:19:184;;;51298:41;51356:19;;37672:172:2;50903:478:184;37672:172:2;37874:11;37854:17;37902:862;37926:9;37922:1;:13;37902:862;;;37956:18;37977:11;;37989:1;37977:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;38049:39:2;;38005:41;38049:39;;;:29;:39;;;;;;37956:35;;-1:-1:-1;38145:22:2;;38168:1;38145:25;;;;;;;:::i;:::-;;;;;;;38102:68;;2105:6:3;38209:32:2;:63;;38184:237;;;;-1:-1:-1;;;38184:237:2;;51588:2:184;38184:237:2;;;51570:21:184;51627:3;51607:18;;;51600:31;51667:34;51647:18;;;51640:62;51738:34;51718:18;;;51711:62;51810:34;51789:19;;;51782:63;-1:-1:-1;;;51861:19:184;;;51854:50;51921:19;;38184:237:2;51386:560:184;38184:237:2;-1:-1:-1;;;;;38487:39:2;;;;;;:29;:39;;;;;;;;;:74;;;38580:173;;52171:51:184;;;52238:18;;52231:34;;;52281:18;;52274:34;;;38580:173:2;;52159:2:184;52144:18;38580:173:2;;;;;;;37942:822;;;37937:3;;;;:::i;:::-;;;37902:862;;;;37662:1108;37511:1259;;;;:::o;2943:441:29:-;3077:14;;-1:-1:-1;;;;;3077:14:29;3069:37;:79;;;;-1:-1:-1;;;;;;3110:38:29;;;;3069:79;3048:197;;;;-1:-1:-1;;;3048:197:29;;52521:2:184;3048:197:29;;;52503:21:184;52560:2;52540:18;;;52533:30;52599:34;52579:18;;;52572:62;52670:34;52650:18;;;52643:62;-1:-1:-1;;;52721:19:184;;;52714:38;52769:19;;3048:197:29;52319:475:184;3048:197:29;3255:7;:26;;;3296:36;;1014:25:184;;;3303:10:29;;3296:36;;1002:2:184;987:18;3296:36:29;;;;;;;3342:35;3361:15;3342:18;:35::i;:::-;2943:441;;:::o;47285:193:2:-;47419:19;;;;;;;;;;;-1:-1:-1;;;47419:19:2;;;;;47381:89;;699:80:3;47381:89:2;;;53030:25:184;47409:30:2;53071:18:184;;;53064:34;47441:13:2;53114:18:184;;;53107:34;47464:4:2;53157:18:184;;;;53150:60;;;;47381:89:2;;;;;;;;;;53002:19:184;;;;47381:89:2;;;47371:100;;;;;;47285:193::o;2673:187:42:-;2765:6;;;-1:-1:-1;;;;;2781:17:42;;;-1:-1:-1;;;;;;2781:17:42;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;36810:472:2:-;2105:6:3;36923:25:2;:56;;36902:216;;;;-1:-1:-1;;;36902:216:2;;53423:2:184;36902:216:2;;;53405:21:184;53462:3;53442:18;;;53435:31;53502:34;53482:18;;;53475:62;53573:34;53553:18;;;53546:62;53645:34;53624:19;;;53617:63;-1:-1:-1;;;53696:19:184;;;53689:48;53754:19;;36902:216:2;53221:558:184;36902:216:2;37161:24;;37133:80;;;53958:25:184;;;54014:2;53999:18;;53992:34;;;37133:80:2;;53931:18:184;37133:80:2;;;;;;;37223:24;:52;36810:472::o;31945:247::-;-1:-1:-1;;;;;32067:24:2;;;;;;;:14;:24;;;;;;;;:34;;;;;;;;;;;:44;;32105:6;;32067:24;:44;;32105:6;;32067:44;:::i;:::-;;;;;;;;32150:8;-1:-1:-1;;;;;32126:59:2;;32160:6;32168:8;32178:6;32126:59;;;;;;;;:::i;26980:4834::-;27186:22;27211:35;;27235:10;27211:35;:::i;:::-;27278:34;;;;:18;:34;;;;;;27186:60;;-1:-1:-1;27278:34:2;;27257:149;;;;-1:-1:-1;;;27257:149:2;;54446:2:184;27257:149:2;;;54428:21:184;54485:2;54465:18;;;54458:30;-1:-1:-1;;;;;;;;;;;54504:18:184;;;54497:62;54595:34;54575:18;;;54568:62;-1:-1:-1;;;54646:19:184;;;54639:34;54690:19;;27257:149:2;54244:471:184;27257:149:2;27462:24;;27490:12;;27438:21;;;;;;;;:::i;:::-;:48;;;;;;:::i;:::-;:64;;27417:207;;;;-1:-1:-1;;;27417:207:2;;54922:2:184;27417:207:2;;;54904:21:184;54961:2;54941:18;;;54934:30;-1:-1:-1;;;;;;;;;;;54980:18:184;;;54973:62;55071:34;55051:18;;;55044:62;55143:33;55122:19;;;55115:62;55194:19;;27417:207:2;54720:499:184;27417:207:2;27670:21;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27656:35:2;:10;-1:-1:-1;;;;;27656:35:2;;27635:163;;;;-1:-1:-1;;;27635:163:2;;55426:2:184;27635:163:2;;;55408:21:184;55465:2;55445:18;;;55438:30;-1:-1:-1;;;;;;;;;;;55484:18:184;;;55477:62;55575:34;55555:18;;;55548:62;-1:-1:-1;;;55626:19:184;;;55619:47;55683:19;;27635:163:2;55224:484:184;27635:163:2;27813:15;27809:217;;;27886:21;;;;:10;:21;:::i;:::-;27869:45;;;-1:-1:-1;27844:171:2;;;;-1:-1:-1;;;27844:171:2;;55915:2:184;27844:171:2;;;55897:21:184;55954:2;55934:18;;;55927:30;-1:-1:-1;;;;;;;;;;;55973:18:184;;;55966:62;56064:34;56044:18;;;56037:62;-1:-1:-1;;;56115:19:184;;;56108:33;56158:19;;27844:171:2;55713:470:184;27844:171:2;28097:34;;;;:18;:34;;;;;28090:41;;-1:-1:-1;;28090:41:2;;;28273:3484;;;;28313:9;28308:697;28332:21;;;;:10;:21;:::i;:::-;:28;;28328:1;:32;28308:697;;;28494:12;28435:29;:55;28465:21;;;;:10;:21;:::i;:::-;28487:1;28465:24;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;28435:55:2;;;;;;;;;;;;-1:-1:-1;28435:55:2;;28411:21;;;;;;;;:::i;:::-;:79;;;;;;:::i;:::-;:95;;28382:276;;;;-1:-1:-1;;;28382:276:2;;;;;;;:::i;:::-;28677:278;28731:17;;;;:10;:17;:::i;:::-;28782:10;28824:21;;;;:10;:21;:::i;:::-;28846:1;28824:24;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;28878:17;;;;:10;:17;:::i;:::-;28896:1;28878:20;;;;;;;:::i;:::-;;;;;;;28927:6;;28934:1;28927:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;28677:23;:278::i;:::-;28985:3;;28308:697;;;;28273:3484;;;29212:10;29174:23;29200;;;:11;:23;;;;;;-1:-1:-1;;;;;29200:23:2;;29237:2510;29261:21;;;;:10;:21;:::i;:::-;:28;;29257:1;:32;29237:2510;;;29423:12;29364:29;:55;29394:21;;;;:10;:21;:::i;:::-;29416:1;29394:24;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;29364:55:2;;;;;;;;;;;;-1:-1:-1;29364:55:2;;29340:21;;;;;;;;:::i;:::-;:79;;;;;;:::i;:::-;:95;;29311:277;;;;-1:-1:-1;;;29311:277:2;;;;;;;:::i;:::-;2088:42;29850:21;;;;:10;:21;:::i;:::-;29872:1;29850:24;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;29850:50:2;;29846:1852;;;29924:14;29941:17;;;;:10;:17;:::i;:::-;29924:34;-1:-1:-1;30238:36:2;-1:-1:-1;;;;;30277:15:2;:25;;29924:34;30379:17;;;;:10;:17;:::i;:::-;30397:1;30379:20;;;;;;;:::i;:::-;30277:145;;-1:-1:-1;;;;;;30277:145:2;;;;;;;-1:-1:-1;;;;;45142:32:184;;;30277:145:2;;;45124:51:184;30379:20:2;;;;;;;45191:18:184;;;45184:34;-1:-1:-1;45097:18:184;;30277:145:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;30471:19:2;;;30444:24;30471:19;;;:11;:19;;;;;;30238:184;;-1:-1:-1;30471:19:2;30570:30;;30566:451;;30628:366;30692:16;30831:6;30877:21;;;;:10;:21;:::i;:::-;30899:1;30877:24;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;30939:28;30628:23;:366::i;:::-;29902:1133;;;29846:1852;;;31063:15;-1:-1:-1;;;;;31063:25:2;;31089:10;31101:6;;31108:1;31101:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;31112:21;;;;:10;:21;:::i;:::-;31134:1;31112:24;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;31138:17;;;;:10;:17;:::i;:::-;31156:1;31138:20;;;;;;;:::i;:::-;31063:96;;;;;;-1:-1:-1;;;;;;31063:96:2;;;-1:-1:-1;;;;;57526:15:184;;;31063:96:2;;;57508:34:184;57578:15;;;57558:18;;;57551:43;57630:15;;;;57610:18;;;57603:43;31138:20:2;;;;;;57662:18:184;;;57655:34;57442:19;;;-1:-1:-1;31063:96:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;31239:29:2;;;31235:445;;31296:361;31360:15;31498:10;31548:21;;;;:10;:21;:::i;:::-;31570:1;31548:24;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;31610:17;;;;:10;:17;:::i;:::-;31628:1;31610:20;;;;;;;:::i;:::-;;;;;;;31296:23;:361::i;:::-;31727:3;;29237:2510;;;;29160:2597;28273:3484;31772:35;;1014:25:184;;;31772:35:2;;1002:2:184;987:18;31772:35:2;;;;;;;27176:4638;26980:4834;;;;;:::o;974:926:25:-;-1:-1:-1;;;;;1476:19:50;;;:23;1410:484:25;;1481:56;;-1:-1:-1;;;1481:56:25;;;1541:18;-1:-1:-1;;;;;1481:33:25;;;574:10;;1481:56;;1515:10;;1527:9;;1481:56;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;1481:78:25;;1456:220;;;;-1:-1:-1;;;1456:220:25;;58868:2:184;1456:220:25;;;58850:21:184;58907:2;58887:18;;;58880:30;58946:34;58926:18;;;58919:62;59017:34;58997:18;;;58990:62;-1:-1:-1;;;59068:19:184;;;59061:50;59128:19;;1456:220:25;58666:487:184;1410:484:25;1772:6;-1:-1:-1;;;;;1732:46:25;:36;1746:10;1758:9;1732:13;:36::i;:::-;-1:-1:-1;;;;;1732:46:25;;1707:176;;;;-1:-1:-1;;;1707:176:25;;59360:2:184;1707:176:25;;;59342:21:184;59399:2;59379:18;;;59372:30;59438:34;59418:18;;;59411:62;59509:34;59489:18;;;59482:62;-1:-1:-1;;;59560:19:184;;;59553:38;59608:19;;1707:176:25;59158:475:184;36328:476:2;-1:-1:-1;;;;;36470:34:2;;2088:42;36470:34;36466:332;;;36520:161;;-1:-1:-1;;;36520:161:2;;-1:-1:-1;;;;;36520:15:2;:38;;;;:161;;36587:6;;36624:10;;36660:6;;36520:161;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36466:332;;;36712:75;;-1:-1:-1;;;36712:75:2;;-1:-1:-1;;;;;60339:15:184;;;36712:75:2;;;60321:34:184;60391:15;;;60371:18;;;60364:43;60423:18;;;60416:34;;;60486:15;;;60466:18;;;60459:43;36712:15:2;:38;;;;60255:19:184;;36712:75:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36466:332;36328:476;;;;;:::o;4402:227:77:-;4480:7;4500:17;4519:18;4541:27;4552:4;4558:9;4541:10;:27::i;:::-;4499:69;;;;4578:18;4590:5;4578:11;:18::i;2243:1373::-;2324:7;2333:12;2554:9;:16;2574:2;2554:22;2550:1060;;;2890:4;2875:20;;2869:27;2939:4;2924:20;;2918:27;2996:4;2981:20;;2975:27;2592:9;2967:36;3037:25;3048:4;2967:36;2869:27;2918;3037:10;:25::i;:::-;3030:32;;;;;;;;;2550:1060;3083:9;:16;3103:2;3083:22;3079:531;;;3399:4;3384:20;;3378:27;3449:4;3434:20;;3428:27;3489:23;3500:4;3378:27;3428;3489:10;:23::i;:::-;3482:30;;;;;;;;3079:531;-1:-1:-1;3559:1:77;;-1:-1:-1;3563:35:77;3079:531;2243:1373;;;;;:::o;548:631::-;625:20;616:5;:29;;;;;;;;:::i;:::-;;612:561;;;548:631;:::o;612:561::-;721:29;712:5;:38;;;;;;;;:::i;:::-;;708:465;;;766:34;;-1:-1:-1;;;766:34:77;;60847:2:184;766:34:77;;;60829:21:184;60886:2;60866:18;;;60859:30;60925:26;60905:18;;;60898:54;60969:18;;766:34:77;60645:348:184;708:465:77;830:35;821:5;:44;;;;;;;;:::i;:::-;;817:356;;;881:41;;-1:-1:-1;;;881:41:77;;61200:2:184;881:41:77;;;61182:21:184;61239:2;61219:18;;;61212:30;61278:33;61258:18;;;61251:61;61329:18;;881:41:77;60998:355:184;817:356:77;952:30;943:5;:39;;;;;;;;:::i;:::-;;939:234;;;998:44;;-1:-1:-1;;;998:44:77;;61560:2:184;998:44:77;;;61542:21:184;61599:2;61579:18;;;61572:30;61638:34;61618:18;;;61611:62;-1:-1:-1;;;61689:18:184;;;61682:32;61731:19;;998:44:77;61358:398:184;939:234:77;1072:30;1063:5;:39;;;;;;;;:::i;:::-;;1059:114;;;1118:44;;-1:-1:-1;;;1118:44:77;;61963:2:184;1118:44:77;;;61945:21:184;62002:2;61982:18;;;61975:30;62041:34;62021:18;;;62014:62;-1:-1:-1;;;62092:18:184;;;62085:32;62134:19;;1118:44:77;61761:398:184;5810:1603:77;5936:7;;6860:66;6847:79;;6843:161;;;-1:-1:-1;6958:1:77;;-1:-1:-1;6962:30:77;6942:51;;6843:161;7017:1;:7;;7022:2;7017:7;;:18;;;;;7028:1;:7;;7033:2;7028:7;;7017:18;7013:100;;;-1:-1:-1;7067:1:77;;-1:-1:-1;7071:30:77;7051:51;;7013:100;7224:24;;;7207:14;7224:24;;;;;;;;;62391:25:184;;;62464:4;62452:17;;62432:18;;;62425:45;;;;62486:18;;;62479:34;;;62529:18;;;62522:34;;;7224:24:77;;62363:19:184;;7224:24:77;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7224:24:77;;-1:-1:-1;;7224:24:77;;;-1:-1:-1;;;;;;;7262:20:77;;7258:101;;7314:1;7318:29;7298:50;;;;;;;7258:101;7377:6;-1:-1:-1;7385:20:77;;-1:-1:-1;5810:1603:77;;;;;;;;:::o;4883:336::-;4993:7;;-1:-1:-1;;;;;5038:80:77;;4993:7;5144:25;5160:3;5145:18;;;5167:2;5144:25;:::i;:::-;5128:42;;5187:25;5198:4;5204:1;5207;5210;5187:10;:25::i;:::-;5180:32;;;;;;4883:336;;;;;;:::o;14:378:184:-;88:8;98:6;152:3;145:4;137:6;133:17;129:27;119:55;;170:1;167;160:12;119:55;-1:-1:-1;193:20:184;;-1:-1:-1;;;;;225:30:184;;222:50;;;268:1;265;258:12;222:50;305:4;297:6;293:17;281:29;;365:3;358:4;348:6;345:1;341:14;333:6;329:27;325:38;322:47;319:67;;;382:1;379;372:12;397:466;501:6;509;562:2;550:9;541:7;537:23;533:32;530:52;;;578:1;575;568:12;530:52;618:9;605:23;-1:-1:-1;;;;;643:6:184;640:30;637:50;;;683:1;680;673:12;637:50;722:81;795:7;786:6;775:9;771:22;722:81;:::i;:::-;822:8;;696:107;;-1:-1:-1;397:466:184;-1:-1:-1;;;;397:466:184:o;1232:131::-;-1:-1:-1;;;;;1307:31:184;;1297:42;;1287:70;;1353:1;1350;1343:12;1368:134;1436:20;;1465:31;1436:20;1465:31;:::i;:::-;1368:134;;;:::o;1507:667::-;1602:6;1610;1618;1626;1634;1687:3;1675:9;1666:7;1662:23;1658:33;1655:53;;;1704:1;1701;1694:12;1655:53;1743:9;1730:23;1762:31;1787:5;1762:31;:::i;:::-;1812:5;-1:-1:-1;1869:2:184;1854:18;;1841:32;1882:33;1841:32;1882:33;:::i;:::-;1934:7;-1:-1:-1;1993:2:184;1978:18;;1965:32;2006:33;1965:32;2006:33;:::i;:::-;1507:667;;;;-1:-1:-1;2058:7:184;;2112:2;2097:18;;2084:32;;-1:-1:-1;2163:3:184;2148:19;2135:33;;1507:667;-1:-1:-1;;1507:667:184:o;2674:632::-;2845:2;2897:21;;;2967:13;;2870:18;;;2989:22;;;2816:4;;2845:2;3068:15;;;;3042:2;3027:18;;;2816:4;3111:169;3125:6;3122:1;3119:13;3111:169;;;3186:13;;3174:26;;3255:15;;;;3220:12;;;;3147:1;3140:9;3111:169;;;-1:-1:-1;3297:3:184;;2674:632;-1:-1:-1;;;;;;2674:632:184:o;3311:163::-;3379:5;3424:2;3415:6;3410:3;3406:16;3402:25;3399:45;;;3440:1;3437;3430:12;3399:45;-1:-1:-1;3462:6:184;3311:163;-1:-1:-1;3311:163:184:o;3479:348::-;3531:8;3541:6;3595:3;3588:4;3580:6;3576:17;3572:27;3562:55;;3613:1;3610;3603:12;3562:55;-1:-1:-1;3636:20:184;;-1:-1:-1;;;;;3668:30:184;;3665:50;;;3711:1;3708;3701:12;3665:50;3748:4;3740:6;3736:17;3724:29;;3800:3;3793:4;3784:6;3776;3772:19;3768:30;3765:39;3762:59;;;3817:1;3814;3807:12;3832:554;3947:6;3955;3963;4016:3;4004:9;3995:7;3991:23;3987:33;3984:53;;;4033:1;4030;4023:12;3984:53;4056:62;4110:7;4099:9;4056:62;:::i;:::-;4046:72;;4169:2;4158:9;4154:18;4141:32;-1:-1:-1;;;;;4188:6:184;4185:30;4182:50;;;4228:1;4225;4218:12;4182:50;4267:59;4318:7;4309:6;4298:9;4294:22;4267:59;:::i;:::-;3832:554;;4345:8;;-1:-1:-1;4241:85:184;;-1:-1:-1;;;;3832:554:184:o;4391:271::-;4474:6;4527:2;4515:9;4506:7;4502:23;4498:32;4495:52;;;4543:1;4540;4533:12;4495:52;4582:9;4569:23;4601:31;4626:5;4601:31;:::i;:::-;4651:5;4391:271;-1:-1:-1;;;4391:271:184:o;4667:474::-;4762:6;4770;4778;4831:2;4819:9;4810:7;4806:23;4802:32;4799:52;;;4847:1;4844;4837:12;4799:52;4886:9;4873:23;4905:31;4930:5;4905:31;:::i;:::-;4955:5;-1:-1:-1;5012:2:184;4997:18;;4984:32;5025:33;4984:32;5025:33;:::i;:::-;4667:474;;5077:7;;-1:-1:-1;;;5131:2:184;5116:18;;;;5103:32;;4667:474::o;5146:180::-;5205:6;5258:2;5246:9;5237:7;5233:23;5229:32;5226:52;;;5274:1;5271;5264:12;5226:52;-1:-1:-1;5297:23:184;;5146:180;-1:-1:-1;5146:180:184:o;5331:813::-;5471:6;5479;5487;5495;5548:2;5536:9;5527:7;5523:23;5519:32;5516:52;;;5564:1;5561;5554:12;5516:52;5604:9;5591:23;-1:-1:-1;;;;;5674:2:184;5666:6;5663:14;5660:34;;;5690:1;5687;5680:12;5660:34;5729:81;5802:7;5793:6;5782:9;5778:22;5729:81;:::i;:::-;5829:8;;-1:-1:-1;5703:107:184;-1:-1:-1;5917:2:184;5902:18;;5889:32;;-1:-1:-1;5933:16:184;;;5930:36;;;5962:1;5959;5952:12;5930:36;;6001:83;6076:7;6065:8;6054:9;6050:24;6001:83;:::i;:::-;5331:813;;;;-1:-1:-1;6103:8:184;-1:-1:-1;;;;5331:813:184:o;6862:1252::-;7062:6;7070;7078;7086;7094;7102;7110;7118;7171:3;7159:9;7150:7;7146:23;7142:33;7139:53;;;7188:1;7185;7178:12;7139:53;7227:9;7214:23;7246:31;7271:5;7246:31;:::i;:::-;7296:5;-1:-1:-1;7353:2:184;7338:18;;7325:32;7366:33;7325:32;7366:33;:::i;:::-;7418:7;-1:-1:-1;7472:2:184;7457:18;;7444:32;;-1:-1:-1;7523:2:184;7508:18;;7495:32;;-1:-1:-1;7578:3:184;7563:19;;7550:33;-1:-1:-1;;;;;7632:14:184;;;7629:34;;;7659:1;7656;7649:12;7629:34;7698:81;7771:7;7762:6;7751:9;7747:22;7698:81;:::i;:::-;7798:8;;-1:-1:-1;7672:107:184;-1:-1:-1;7886:3:184;7871:19;;7858:33;;-1:-1:-1;7903:16:184;;;7900:36;;;7932:1;7929;7922:12;7900:36;;7971:83;8046:7;8035:8;8024:9;8020:24;7971:83;:::i;:::-;6862:1252;;;;-1:-1:-1;6862:1252:184;;-1:-1:-1;6862:1252:184;;;;;;8073:8;-1:-1:-1;;;6862:1252:184:o;8119:1518::-;8383:6;8391;8399;8407;8415;8423;8431;8439;8492:3;8480:9;8471:7;8467:23;8463:33;8460:53;;;8509:1;8506;8499:12;8460:53;8549:9;8536:23;-1:-1:-1;;;;;8619:2:184;8611:6;8608:14;8605:34;;;8635:1;8632;8625:12;8605:34;8674:81;8747:7;8738:6;8727:9;8723:22;8674:81;:::i;:::-;8774:8;;-1:-1:-1;8648:107:184;-1:-1:-1;8862:2:184;8847:18;;8834:32;;-1:-1:-1;8878:16:184;;;8875:36;;;8907:1;8904;8897:12;8875:36;8946:83;9021:7;9010:8;8999:9;8995:24;8946:83;:::i;:::-;9048:8;;-1:-1:-1;8920:109:184;-1:-1:-1;9136:2:184;9121:18;;9108:32;;-1:-1:-1;9152:16:184;;;9149:36;;;9181:1;9178;9171:12;9149:36;9220:83;9295:7;9284:8;9273:9;9269:24;9220:83;:::i;:::-;9322:8;;-1:-1:-1;9194:109:184;-1:-1:-1;9410:2:184;9395:18;;9382:32;;-1:-1:-1;9426:16:184;;;9423:36;;;9455:1;9452;9445:12;10508:127;10569:10;10564:3;10560:20;10557:1;10550:31;10600:4;10597:1;10590:15;10624:4;10621:1;10614:15;10640:253;10712:2;10706:9;10754:4;10742:17;;-1:-1:-1;;;;;10774:34:184;;10810:22;;;10771:62;10768:88;;;10836:18;;:::i;:::-;10872:2;10865:22;10640:253;:::o;10898:257::-;10970:4;10964:11;;;11002:17;;-1:-1:-1;;;;;11034:34:184;;11070:22;;;11031:62;11028:88;;;11096:18;;:::i;11160:275::-;11231:2;11225:9;11296:2;11277:13;;-1:-1:-1;;11273:27:184;11261:40;;-1:-1:-1;;;;;11316:34:184;;11352:22;;;11313:62;11310:88;;;11378:18;;:::i;:::-;11414:2;11407:22;11160:275;;-1:-1:-1;11160:275:184:o;11440:121::-;11525:10;11518:5;11514:22;11507:5;11504:33;11494:61;;11551:1;11548;11541:12;11566:132;11633:20;;11662:30;11633:20;11662:30;:::i;11703:194::-;11774:4;-1:-1:-1;;;;;11799:6:184;11796:30;11793:56;;;11829:18;;:::i;:::-;-1:-1:-1;11874:1:184;11870:14;11886:4;11866:25;;11703:194::o;11902:759::-;11967:5;12020:3;12013:4;12005:6;12001:17;11997:27;11987:55;;12038:1;12035;12028:12;11987:55;12074:6;12061:20;12100:4;12124:71;12140:54;12191:2;12140:54;:::i;:::-;12124:71;:::i;:::-;12229:15;;;12315:1;12311:10;;;;12299:23;;12295:32;;;12260:12;;;;12339:15;;;12336:35;;;12367:1;12364;12357:12;12336:35;12403:2;12395:6;12391:15;12415:217;12431:6;12426:3;12423:15;12415:217;;;12511:3;12498:17;12528:31;12553:5;12528:31;:::i;:::-;12572:18;;12610:12;;;;12448;;12415:217;;;-1:-1:-1;12650:5:184;11902:759;-1:-1:-1;;;;;;11902:759:184:o;12666:673::-;12720:5;12773:3;12766:4;12758:6;12754:17;12750:27;12740:55;;12791:1;12788;12781:12;12740:55;12827:6;12814:20;12853:4;12877:71;12893:54;12944:2;12893:54;:::i;12877:71::-;12982:15;;;13068:1;13064:10;;;;13052:23;;13048:32;;;13013:12;;;;13092:15;;;13089:35;;;13120:1;13117;13110:12;13089:35;13156:2;13148:6;13144:15;13168:142;13184:6;13179:3;13176:15;13168:142;;;13250:17;;13238:30;;13288:12;;;;13201;;13168:142;;13344:939;13401:5;13449:4;13437:9;13432:3;13428:19;13424:30;13421:50;;;13467:1;13464;13457:12;13421:50;13489:22;;:::i;:::-;13480:31;;13534:29;13553:9;13534:29;:::i;:::-;13527:5;13520:44;13596:38;13630:2;13619:9;13615:18;13596:38;:::i;:::-;13591:2;13584:5;13580:14;13573:62;13667:38;13701:2;13690:9;13686:18;13667:38;:::i;:::-;13662:2;13655:5;13651:14;13644:62;13766:2;13755:9;13751:18;13738:32;13733:2;13726:5;13722:14;13715:56;13804:38;13837:3;13826:9;13822:19;13804:38;:::i;:::-;13798:3;13791:5;13787:15;13780:63;13894:3;13883:9;13879:19;13866:33;-1:-1:-1;;;;;13959:2:184;13951:6;13948:14;13945:34;;;13975:1;13972;13965:12;13945:34;14012:68;14076:3;14067:6;14056:9;14052:22;14012:68;:::i;:::-;14006:3;13999:5;13995:15;13988:93;14134:3;14123:9;14119:19;14106:33;14090:49;;14164:2;14154:8;14151:16;14148:36;;;14180:1;14177;14170:12;14148:36;;14217:59;14272:3;14261:8;14250:9;14246:24;14217:59;:::i;:::-;14211:3;14204:5;14200:15;14193:84;;13344:939;;;;:::o;14288:351::-;14375:6;14428:2;14416:9;14407:7;14403:23;14399:32;14396:52;;;14444:1;14441;14434:12;14396:52;14484:9;14471:23;-1:-1:-1;;;;;14509:6:184;14506:30;14503:50;;;14549:1;14546;14539:12;14503:50;14572:61;14625:7;14616:6;14605:9;14601:22;14572:61;:::i;:::-;14562:71;14288:351;-1:-1:-1;;;;14288:351:184:o;14644:269::-;14701:6;14754:2;14742:9;14733:7;14729:23;14725:32;14722:52;;;14770:1;14767;14760:12;14722:52;14809:9;14796:23;14859:4;14852:5;14848:16;14841:5;14838:27;14828:55;;14879:1;14876;14869:12;14918:118;15004:5;14997:13;14990:21;14983:5;14980:32;14970:60;;15026:1;15023;15016:12;15041:951;15197:6;15205;15213;15221;15229;15282:3;15270:9;15261:7;15257:23;15253:33;15250:53;;;15299:1;15296;15289:12;15250:53;15339:9;15326:23;-1:-1:-1;;;;;15409:2:184;15401:6;15398:14;15395:34;;;15425:1;15422;15415:12;15395:34;15448:22;;;;15504:3;15486:16;;;15482:26;15479:46;;;15521:1;15518;15511:12;15479:46;15544:2;;-1:-1:-1;15599:2:184;15584:18;;15571:32;;15615:16;;;15612:36;;;15644:1;15641;15634:12;15612:36;;15683:83;15758:7;15747:8;15736:9;15732:24;15683:83;:::i;:::-;15785:8;;-1:-1:-1;15657:109:184;-1:-1:-1;;15867:2:184;15852:18;;15839:32;;-1:-1:-1;15921:2:184;15906:18;;15893:32;15934:28;15893:32;15934:28;:::i;:::-;15981:5;15971:15;;;15041:951;;;;;;;;:::o;15997:406::-;16083:6;16091;16144:2;16132:9;16123:7;16119:23;16115:32;16112:52;;;16160:1;16157;16150:12;16112:52;16199:9;16186:23;16218:31;16243:5;16218:31;:::i;:::-;16268:5;-1:-1:-1;16325:2:184;16310:18;;16297:32;16338:33;16297:32;16338:33;:::i;:::-;16390:7;16380:17;;;15997:406;;;;;:::o;16408:862::-;16474:5;16522:4;16510:9;16505:3;16501:19;16497:30;16494:50;;;16540:1;16537;16530:12;16494:50;16562:22;;:::i;:::-;16553:31;;16620:9;16607:23;-1:-1:-1;;;;;16690:2:184;16682:6;16679:14;16676:34;;;16706:1;16703;16696:12;16676:34;16744:6;16733:9;16729:22;16719:32;;16789:3;16782:4;16778:2;16774:13;16770:23;16760:51;;16807:1;16804;16797:12;16760:51;16843:2;16830:16;16865:4;16888:2;16884;16881:10;16878:36;;;16894:18;;:::i;:::-;16936:53;16979:2;16960:13;;-1:-1:-1;;16956:27:184;16952:36;;16936:53;:::i;:::-;16923:66;;17012:2;17005:5;16998:17;17052:3;17047:2;17042;17038;17034:11;17030:20;17027:29;17024:49;;;17069:1;17066;17059:12;17024:49;17124:2;17119;17115;17111:11;17106:2;17099:5;17095:14;17082:45;17168:1;17163:2;17158;17151:5;17147:14;17143:23;17136:34;17193:5;17186;17179:20;17259:2;17248:9;17244:18;17231:32;17226:2;17219:5;17215:14;17208:56;;;;;16408:862;;;;:::o;17275:983::-;17444:6;17452;17460;17468;17476;17529:3;17517:9;17508:7;17504:23;17500:33;17497:53;;;17546:1;17543;17536:12;17497:53;17585:9;17572:23;17604:31;17629:5;17604:31;:::i;:::-;17654:5;-1:-1:-1;17711:2:184;17696:18;;17683:32;17724:33;17683:32;17724:33;:::i;:::-;17776:7;-1:-1:-1;17834:2:184;17819:18;;17806:32;-1:-1:-1;;;;;17887:14:184;;;17884:34;;;17914:1;17911;17904:12;17884:34;17937:70;17999:7;17990:6;17979:9;17975:22;17937:70;:::i;:::-;17927:80;;18060:2;18049:9;18045:18;18032:32;18016:48;;18089:2;18079:8;18076:16;18073:36;;;18105:1;18102;18095:12;18073:36;;18128:72;18192:7;18181:8;18170:9;18166:24;18128:72;:::i;:::-;17275:983;;;;-1:-1:-1;17275:983:184;;18247:3;18232:19;18219:33;;17275:983;-1:-1:-1;;;17275:983:184:o;18495:512::-;18606:6;18614;18667:2;18655:9;18646:7;18642:23;18638:32;18635:52;;;18683:1;18680;18673:12;18635:52;18722:9;18709:23;18741:31;18766:5;18741:31;:::i;:::-;18791:5;-1:-1:-1;18847:2:184;18832:18;;18819:32;-1:-1:-1;;;;;18863:30:184;;18860:50;;;18906:1;18903;18896:12;18860:50;18929:72;18993:7;18984:6;18973:9;18969:22;18929:72;:::i;:::-;18919:82;;;18495:512;;;;;:::o;19012:435::-;19065:3;19103:5;19097:12;19130:6;19125:3;19118:19;19156:4;19185:2;19180:3;19176:12;19169:19;;19222:2;19215:5;19211:14;19243:1;19253:169;19267:6;19264:1;19261:13;19253:169;;;19328:13;;19316:26;;19362:12;;;;19397:15;;;;19289:1;19282:9;19253:169;;;-1:-1:-1;19438:3:184;;19012:435;-1:-1:-1;;;;;19012:435:184:o;19452:261::-;19631:2;19620:9;19613:21;19594:4;19651:56;19703:2;19692:9;19688:18;19680:6;19651:56;:::i;19944:411::-;20015:6;20023;20076:2;20064:9;20055:7;20051:23;20047:32;20044:52;;;20092:1;20089;20082:12;20044:52;20132:9;20119:23;-1:-1:-1;;;;;20157:6:184;20154:30;20151:50;;;20197:1;20194;20187:12;20151:50;20236:59;20287:7;20278:6;20267:9;20263:22;20236:59;:::i;20770:315::-;20838:6;20846;20899:2;20887:9;20878:7;20874:23;20870:32;20867:52;;;20915:1;20912;20905:12;20867:52;20954:9;20941:23;20973:31;20998:5;20973:31;:::i;:::-;21023:5;21075:2;21060:18;;;;21047:32;;-1:-1:-1;;;20770:315:184:o;21814:525::-;21900:6;21908;21916;21924;21977:3;21965:9;21956:7;21952:23;21948:33;21945:53;;;21994:1;21991;21984:12;21945:53;22033:9;22020:23;22052:31;22077:5;22052:31;:::i;:::-;22102:5;-1:-1:-1;22154:2:184;22139:18;;22126:32;;-1:-1:-1;22210:2:184;22195:18;;22182:32;22223:33;22182:32;22223:33;:::i;:::-;21814:525;;;;-1:-1:-1;22275:7:184;;22329:2;22314:18;22301:32;;-1:-1:-1;;21814:525:184:o;22344:472::-;22408:3;22446:5;22440:12;22473:6;22468:3;22461:19;22499:4;22528:2;22523:3;22519:12;22512:19;;22565:2;22558:5;22554:14;22586:1;22596:195;22610:6;22607:1;22604:13;22596:195;;;22675:13;;-1:-1:-1;;;;;22671:39:184;22659:52;;22731:12;;;;22766:15;;;;22707:1;22625:9;22596:195;;22821:494;23096:2;23085:9;23078:21;23059:4;23122:67;23185:2;23174:9;23170:18;23162:6;23122:67;:::i;:::-;23237:9;23229:6;23225:22;23220:2;23209:9;23205:18;23198:50;23265:44;23302:6;23294;23265:44;:::i;23320:572::-;23434:6;23442;23450;23503:2;23491:9;23482:7;23478:23;23474:32;23471:52;;;23519:1;23516;23509:12;23471:52;23558:9;23545:23;23577:31;23602:5;23577:31;:::i;:::-;23627:5;-1:-1:-1;23683:2:184;23668:18;;23655:32;-1:-1:-1;;;;;23699:30:184;;23696:50;;;23742:1;23739;23732:12;23696:50;23765:70;23827:7;23818:6;23807:9;23803:22;23765:70;:::i;:::-;23755:80;;;23882:2;23871:9;23867:18;23854:32;23844:42;;23320:572;;;;;:::o;23897:254::-;23991:6;24044:2;24032:9;24023:7;24019:23;24015:32;24012:52;;;24060:1;24057;24050:12;24012:52;24083:62;24137:7;24126:9;24083:62;:::i;24156:127::-;24217:10;24212:3;24208:20;24205:1;24198:31;24248:4;24245:1;24238:15;24272:4;24269:1;24262:15;24288:127;24349:10;24344:3;24340:20;24337:1;24330:31;24380:4;24377:1;24370:15;24404:4;24401:1;24394:15;24420:135;24459:3;-1:-1:-1;;24480:17:184;;24477:43;;;24500:18;;:::i;:::-;-1:-1:-1;24547:1:184;24536:13;;24420:135::o;25562:349::-;25764:2;25746:21;;;25803:2;25783:18;;;25776:30;25842:27;25837:2;25822:18;;25815:55;25902:2;25887:18;;25562:349::o;25916:339::-;26024:4;26082:11;26069:25;26176:2;26172:7;26161:8;26145:14;26141:29;26137:43;26117:18;26113:68;26103:96;;26195:1;26192;26185:12;26103:96;26216:33;;;;;25916:339;-1:-1:-1;;25916:339:184:o;26260:545::-;26353:4;26359:6;26419:11;26406:25;26513:2;26509:7;26498:8;26482:14;26478:29;26474:43;26454:18;26450:68;26440:96;;26532:1;26529;26522:12;26440:96;26559:33;;26611:20;;;-1:-1:-1;;;;;;26643:30:184;;26640:50;;;26686:1;26683;26676:12;26640:50;26719:4;26707:17;;-1:-1:-1;26770:1:184;26766:14;;;26750;26746:35;26736:46;;26733:66;;;26795:1;26792;26785:12;28715:684;28917:2;28902:18;;28942:20;;28971:31;28942:20;28971:31;:::i;:::-;-1:-1:-1;;;;;29067:14:184;;;29049:33;;29131:4;29119:17;;29106:31;;29146:33;29106:31;29146:33;:::i;:::-;29217:16;29210:4;29195:20;;29188:46;29283:4;29271:17;;29258:31;29298:32;29258:31;29298:32;:::i;:::-;29381:10;29372:7;29368:24;29361:4;29350:9;29346:20;29339:54;;28715:684;;;;:::o;29404:390::-;29563:2;29552:9;29545:21;29602:6;29597:2;29586:9;29582:18;29575:34;29659:6;29651;29646:2;29635:9;29631:18;29618:48;29715:1;29686:22;;;29710:2;29682:31;;;29675:42;;;;29778:2;29757:15;;;-1:-1:-1;;29753:29:184;29738:45;29734:54;;29404:390;-1:-1:-1;29404:390:184:o;29799:251::-;29869:6;29922:2;29910:9;29901:7;29897:23;29893:32;29890:52;;;29938:1;29935;29928:12;29890:52;29970:9;29964:16;29989:31;30014:5;29989:31;:::i;30055:406::-;30257:2;30239:21;;;30296:2;30276:18;;;30269:30;30335:34;30330:2;30315:18;;30308:62;-1:-1:-1;;;30401:2:184;30386:18;;30379:40;30451:3;30436:19;;30055:406::o;30466:419::-;30668:2;30650:21;;;30707:2;30687:18;;;30680:30;30746:34;30741:2;30726:18;;30719:62;30817:25;30812:2;30797:18;;30790:53;30875:3;30860:19;;30466:419::o;30890:245::-;30957:6;31010:2;30998:9;30989:7;30985:23;30981:32;30978:52;;;31026:1;31023;31016:12;30978:52;31058:9;31052:16;31077:28;31099:5;31077:28;:::i;31140:404::-;31342:2;31324:21;;;31381:2;31361:18;;;31354:30;31420:34;31415:2;31400:18;;31393:62;-1:-1:-1;;;31486:2:184;31471:18;;31464:38;31534:3;31519:19;;31140:404::o;32948:328::-;33044:4;33102:11;33089:25;33196:3;33192:8;33181;33165:14;33161:29;33157:44;33137:18;33133:69;33123:97;;33216:1;33213;33206:12;33847:241;33903:6;33956:2;33944:9;33935:7;33931:23;33927:32;33924:52;;;33972:1;33969;33962:12;33924:52;34011:9;33998:23;34030:28;34052:5;34030:28;:::i;34093:754::-;34146:3;34191:1;34187;34182:3;34178:11;34174:19;34232:2;34224:5;34218:12;34214:21;34209:3;34202:34;34297:2;34289:4;34282:5;34278:16;34272:23;34268:32;34261:4;34256:3;34252:14;34245:56;34362:2;34354:4;34347:5;34343:16;34337:23;34333:32;34326:4;34321:3;34317:14;34310:56;;34415:4;34408:5;34404:16;34398:23;34391:4;34386:3;34382:14;34375:47;34483:10;34475:4;34468:5;34464:16;34458:23;34454:40;34447:4;34442:3;34438:14;34431:64;34541:4;34534:5;34530:16;34524:23;34579:4;34572;34567:3;34563:14;34556:28;34605:69;34668:4;34663:3;34659:14;34645:12;34605:69;:::i;:::-;34593:81;;34722:4;34715:5;34711:16;34705:23;34770:3;34764:4;34760:14;34753:4;34748:3;34744:14;34737:38;34791:50;34836:4;34820:14;34791:50;:::i;34852:267::-;35037:2;35026:9;35019:21;35000:4;35057:56;35109:2;35098:9;35094:18;35086:6;35057:56;:::i;37578:183::-;37647:6;37700:2;37688:9;37679:7;37675:23;37671:32;37668:52;;;37716:1;37713;37706:12;37668:52;-1:-1:-1;37739:16:184;;37578:183;-1:-1:-1;37578:183:184:o;37766:670::-;37831:5;37884:3;37877:4;37869:6;37865:17;37861:27;37851:55;;37902:1;37899;37892:12;37851:55;37931:6;37925:13;37957:4;37981:71;37997:54;38048:2;37997:54;:::i;37981:71::-;38086:15;;;38172:1;38168:10;;;;38156:23;;38152:32;;;38117:12;;;;38196:15;;;38193:35;;;38224:1;38221;38214:12;38193:35;38260:2;38252:6;38248:15;38272:135;38288:6;38283:3;38280:15;38272:135;;;38354:10;;38342:23;;38385:12;;;;38305;;38272:135;;38441:1238;38588:6;38596;38649:2;38637:9;38628:7;38624:23;38620:32;38617:52;;;38665:1;38662;38655:12;38617:52;38698:9;38692:16;-1:-1:-1;;;;;38768:2:184;38760:6;38757:14;38754:34;;;38784:1;38781;38774:12;38754:34;38822:6;38811:9;38807:22;38797:32;;38867:7;38860:4;38856:2;38852:13;38848:27;38838:55;;38889:1;38886;38879:12;38838:55;38918:2;38912:9;38940:4;38964:71;38980:54;39031:2;38980:54;:::i;38964:71::-;39069:15;;;39151:1;39147:10;;;;39139:19;;39135:28;;;39100:12;;;;39175:19;;;39172:39;;;39207:1;39204;39197:12;39172:39;39231:11;;;;39251:210;39267:6;39262:3;39259:15;39251:210;;;39340:3;39334:10;39357:31;39382:5;39357:31;:::i;:::-;39401:18;;39284:12;;;;39439;;;;39251:210;;;39516:18;;;39510:25;39480:5;;-1:-1:-1;39510:25:184;;-1:-1:-1;;;39547:16:184;;;39544:36;;;39576:1;39573;39566:12;39544:36;;39599:74;39665:7;39654:8;39643:9;39639:24;39599:74;:::i;39684:128::-;39724:3;39755:1;39751:6;39748:1;39745:13;39742:39;;;39761:18;;:::i;:::-;-1:-1:-1;39797:9:184;;39684:128::o;39817:125::-;39857:4;39885:1;39882;39879:8;39876:34;;;39890:18;;:::i;:::-;-1:-1:-1;39927:9:184;;39817:125::o;45851:393::-;-1:-1:-1;;;;;46127:15:184;;;46109:34;;46179:15;;;;46174:2;46159:18;;46152:43;46226:2;46211:18;;46204:34;;;;46059:2;46044:18;;45851:393::o;46249:338::-;46462:6;46451:9;46444:25;46505:2;46500;46489:9;46485:18;46478:30;46425:4;46525:56;46577:2;46566:9;46562:18;46554:6;46525:56;:::i;46592:245::-;46650:6;46703:2;46691:9;46682:7;46678:23;46674:32;46671:52;;;46719:1;46716;46709:12;46671:52;46758:9;46745:23;46777:30;46801:5;46777:30;:::i;47892:195::-;47996:11;;-1:-1:-1;;;;;;47992:54:184;-1:-1:-1;;;;;48048:31:184;;;;47989:91;;;;47976:105;;47892:195::o;48092:758::-;48273:5;48260:19;48288:33;48313:7;48288:33;:::i;:::-;48330:62;48384:7;48378:4;48330:62;:::i;:::-;;48429:1;48423:4;48419:12;48479:2;48472:5;48468:14;48455:28;48492:33;48517:7;48492:33;:::i;:::-;48534:68;48594:7;48582:10;48534:68;:::i;:::-;;48650:2;48643:5;48639:14;48626:28;48663:32;48687:7;48663:32;:::i;:::-;48714:17;;-1:-1:-1;;;;48762:34:184;48825:3;48802:17;;;;-1:-1:-1;;;48798:44:184;48759:84;48740:104;;-1:-1:-1;;48092:758:184:o;54037:202::-;54145:9;54182:51;54218:14;54211:5;54182:51;:::i;:::-;54169:64;54037:202;-1:-1:-1;;54037:202:184:o;56188:555::-;56390:2;56372:21;;;56429:3;56409:18;;;56402:31;-1:-1:-1;;;;;;;;;;;56464:2:184;56449:18;;56442:62;56540:34;56535:2;56520:18;;56513:62;56612:34;56606:3;56591:19;;56584:63;-1:-1:-1;;;56678:3:184;56663:19;;56656:45;56733:3;56718:19;;56188:555::o;57700:666::-;57875:6;57864:9;57857:25;57838:4;57901:2;57939;57934;57923:9;57919:18;57912:30;57971:6;57965:13;58014:6;58009:2;57998:9;57994:18;57987:34;58039:1;58049:140;58063:6;58060:1;58057:13;58049:140;;;58158:14;;;58154:23;;58148:30;58124:17;;;58143:2;58120:26;58113:66;58078:10;;58049:140;;;58207:6;58204:1;58201:13;58198:91;;;58277:1;58272:2;58263:6;58252:9;58248:22;58244:31;58237:42;58198:91;-1:-1:-1;58350:2:184;58329:15;-1:-1:-1;;58325:29:184;58310:45;;;;58357:2;58306:54;;57700:666;-1:-1:-1;;;;57700:666:184:o;58371:290::-;58440:6;58493:2;58481:9;58472:7;58468:23;58464:32;58461:52;;;58509:1;58506;58499:12;58461:52;58535:16;;-1:-1:-1;;;;;;58580:32:184;;58570:43;;58560:71;;58627:1;58624;58617:12;60513:127;60574:10;60569:3;60565:20;60562:1;60555:31;60605:4;60602:1;60595:15;60629:4;60626:1;60619:15","linkReferences":{},"immutableReferences":{"2560":[{"start":1273,"length":32},{"start":4092,"length":32},{"start":4984,"length":32},{"start":7326,"length":32},{"start":10925,"length":32},{"start":11312,"length":32},{"start":16313,"length":32},{"start":17445,"length":32}],"2564":[{"start":1890,"length":32}],"2568":[{"start":1457,"length":32},{"start":4142,"length":32},{"start":5034,"length":32},{"start":7178,"length":32},{"start":10720,"length":32},{"start":16019,"length":32},{"start":17279,"length":32}],"429":[{"start":9863,"length":32}]}},"methodIdentifiers":{"DELEGATION_APPROVAL_TYPEHASH()":"04a4f979","DOMAIN_TYPEHASH()":"20606b70","MAX_STAKER_OPT_OUT_WINDOW_BLOCKS()":"4fc40b61","MAX_WITHDRAWAL_DELAY_BLOCKS()":"ca661c04","STAKER_DELEGATION_TYPEHASH()":"43377382","beaconChainETHStrategy()":"9104c319","calculateCurrentStakerDelegationDigestHash(address,address,uint256)":"1bbce091","calculateDelegationApprovalDigestHash(address,address,address,bytes32,uint256)":"0b9f487a","calculateStakerDelegationDigestHash(address,uint256,address,uint256)":"c94b5111","calculateWithdrawalRoot((address,address,address,uint256,uint32,address[],uint256[]))":"597b36da","completeQueuedWithdrawal((address,address,address,uint256,uint32,address[],uint256[]),address[],uint256,bool)":"60d7faed","completeQueuedWithdrawals((address,address,address,uint256,uint32,address[],uint256[])[],address[][],uint256[],bool[])":"33404396","cumulativeWithdrawalsQueued(address)":"a1788484","decreaseDelegatedShares(address,address,uint256)":"132d4967","delegateTo(address,(bytes,uint256),bytes32)":"eea9064b","delegateToBySignature(address,address,(bytes,uint256),(bytes,uint256),bytes32)":"7f548071","delegatedTo(address)":"65da1264","delegationApprover(address)":"3cdeb5e0","delegationApproverSaltIsSpent(address,bytes32)":"bb45fef2","domainSeparator()":"f698da25","eigenPodManager()":"4665bcda","getDelegatableShares(address)":"cf80873e","getOperatorShares(address,address[])":"90041347","getWithdrawalDelay(address[])":"0449ca39","increaseDelegatedShares(address,address,uint256)":"28a573ae","initialize(address,address,uint256,uint256,address[],uint256[])":"22bf40e4","isDelegated(address)":"3e28391d","isOperator(address)":"6d70f7ae","minWithdrawalDelayBlocks()":"c448feb8","modifyOperatorDetails((address,address,uint32))":"f16172b0","operatorDetails(address)":"c5e480db","operatorShares(address,address)":"778e55f3","owner()":"8da5cb5b","pause(uint256)":"136439dd","pauseAll()":"595c6a67","paused()":"5c975abb","paused(uint8)":"5ac86ab7","pauserRegistry()":"886f1195","pendingWithdrawals(bytes32)":"b7f06ebe","queueWithdrawals((address[],uint256[],address)[])":"0dd8dd02","registerAsOperator((address,address,uint32),string)":"0f589e59","renounceOwnership()":"715018a6","setMinWithdrawalDelayBlocks(uint256)":"635bbd10","setPauserRegistry(address)":"10d67a2f","setStrategyWithdrawalDelayBlocks(address[],uint256[])":"1522bf02","slasher()":"b1344271","stakerNonce(address)":"29c77d4f","stakerOptOutWindowBlocks(address)":"16928365","strategyManager()":"39b70e38","strategyWithdrawalDelayBlocks(address)":"c488375a","transferOwnership(address)":"f2fde38b","undelegate(address)":"da8be864","unpause(uint256)":"fabc1cbc","updateOperatorMetadataURI(string)":"99be81c8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IStrategyManager\",\"name\":\"_strategyManager\",\"type\":\"address\"},{\"internalType\":\"contract ISlasher\",\"name\":\"_slasher\",\"type\":\"address\"},{\"internalType\":\"contract IEigenPodManager\",\"name\":\"_eigenPodManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"MinWithdrawalDelayBlocksSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"__deprecated_earningsReceiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegationApprover\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\"}],\"indexed\":false,\"internalType\":\"struct IDelegationManager.OperatorDetails\",\"name\":\"newOperatorDetails\",\"type\":\"tuple\"}],\"name\":\"OperatorDetailsModified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"name\":\"OperatorMetadataURIUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"__deprecated_earningsReceiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegationApprover\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\"}],\"indexed\":false,\"internalType\":\"struct IDelegationManager.OperatorDetails\",\"name\":\"operatorDetails\",\"type\":\"tuple\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"OperatorSharesDecreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"OperatorSharesIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract IPauserRegistry\",\"name\":\"pauserRegistry\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"PauserRegistrySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"StakerDelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"StakerForceUndelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"StakerUndelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"StrategyWithdrawalDelayBlocksSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"WithdrawalCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatedTo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startBlock\",\"type\":\"uint32\"},{\"internalType\":\"contract IStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"}],\"indexed\":false,\"internalType\":\"struct IDelegationManager.Withdrawal\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"WithdrawalQueued\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DELEGATION_APPROVAL_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_STAKER_OPT_OUT_WINDOW_BLOCKS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_WITHDRAWAL_DELAY_BLOCKS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKER_DELEGATION_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beaconChainETHStrategy\",\"outputs\":[{\"internalType\":\"contract IStrategy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"calculateCurrentStakerDelegationDigestHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegationApprover\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"approverSalt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"calculateDelegationApprovalDigestHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_stakerNonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"calculateStakerDelegationDigestHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatedTo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startBlock\",\"type\":\"uint32\"},{\"internalType\":\"contract IStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"}],\"internalType\":\"struct IDelegationManager.Withdrawal\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"calculateWithdrawalRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatedTo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startBlock\",\"type\":\"uint32\"},{\"internalType\":\"contract IStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"}],\"internalType\":\"struct IDelegationManager.Withdrawal\",\"name\":\"withdrawal\",\"type\":\"tuple\"},{\"internalType\":\"contract IERC20[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"middlewareTimesIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"receiveAsTokens\",\"type\":\"bool\"}],\"name\":\"completeQueuedWithdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatedTo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startBlock\",\"type\":\"uint32\"},{\"internalType\":\"contract IStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"}],\"internalType\":\"struct IDelegationManager.Withdrawal[]\",\"name\":\"withdrawals\",\"type\":\"tuple[]\"},{\"internalType\":\"contract IERC20[][]\",\"name\":\"tokens\",\"type\":\"address[][]\"},{\"internalType\":\"uint256[]\",\"name\":\"middlewareTimesIndexes\",\"type\":\"uint256[]\"},{\"internalType\":\"bool[]\",\"name\":\"receiveAsTokens\",\"type\":\"bool[]\"}],\"name\":\"completeQueuedWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"cumulativeWithdrawalsQueued\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"decreaseDelegatedShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureUtils.SignatureWithExpiry\",\"name\":\"approverSignatureAndExpiry\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"approverSalt\",\"type\":\"bytes32\"}],\"name\":\"delegateTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureUtils.SignatureWithExpiry\",\"name\":\"stakerSignatureAndExpiry\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureUtils.SignatureWithExpiry\",\"name\":\"approverSignatureAndExpiry\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"approverSalt\",\"type\":\"bytes32\"}],\"name\":\"delegateToBySignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"delegatedTo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"delegationApprover\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"delegationApproverSaltIsSpent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"domainSeparator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eigenPodManager\",\"outputs\":[{\"internalType\":\"contract IEigenPodManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"getDelegatableShares\",\"outputs\":[{\"internalType\":\"contract IStrategy[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"contract IStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"}],\"name\":\"getOperatorShares\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"}],\"name\":\"getWithdrawalDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"increaseDelegatedShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"contract IPauserRegistry\",\"name\":\"_pauserRegistry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialPausedStatus\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_minWithdrawalDelayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"contract IStrategy[]\",\"name\":\"_strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_withdrawalDelayBlocks\",\"type\":\"uint256[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"isDelegated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minWithdrawalDelayBlocks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"__deprecated_earningsReceiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegationApprover\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\"}],\"internalType\":\"struct IDelegationManager.OperatorDetails\",\"name\":\"newOperatorDetails\",\"type\":\"tuple\"}],\"name\":\"modifyOperatorDetails\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorDetails\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"__deprecated_earningsReceiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegationApprover\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\"}],\"internalType\":\"struct IDelegationManager.OperatorDetails\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"contract IStrategy\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"operatorShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauserRegistry\",\"outputs\":[{\"internalType\":\"contract IPauserRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"pendingWithdrawals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contract IStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"}],\"internalType\":\"struct IDelegationManager.QueuedWithdrawalParams[]\",\"name\":\"queuedWithdrawalParams\",\"type\":\"tuple[]\"}],\"name\":\"queueWithdrawals\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"__deprecated_earningsReceiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegationApprover\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\"}],\"internalType\":\"struct IDelegationManager.OperatorDetails\",\"name\":\"registeringOperatorDetails\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"name\":\"registerAsOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMinWithdrawalDelayBlocks\",\"type\":\"uint256\"}],\"name\":\"setMinWithdrawalDelayBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"setPauserRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"withdrawalDelayBlocks\",\"type\":\"uint256[]\"}],\"name\":\"setStrategyWithdrawalDelayBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"contract ISlasher\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"stakerNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stakerOptOutWindowBlocks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategyManager\",\"outputs\":[{\"internalType\":\"contract IStrategyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IStrategy\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"strategyWithdrawalDelayBlocks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"undelegate\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"withdrawalRoots\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"name\":\"updateOperatorMetadataURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Layr Labs, Inc.\",\"kind\":\"dev\",\"methods\":{\"calculateCurrentStakerDelegationDigestHash(address,address,uint256)\":{\"params\":{\"expiry\":\"The desired expiry time of the staker's signature\",\"operator\":\"The operator who is being delegated to\",\"staker\":\"The signing staker\"}},\"calculateDelegationApprovalDigestHash(address,address,address,bytes32,uint256)\":{\"params\":{\"_delegationApprover\":\"the operator's `delegationApprover` who will be signing the delegationHash (in general)\",\"approverSalt\":\"A unique and single use value associated with the approver signature.\",\"expiry\":\"Time after which the approver's signature becomes invalid\",\"operator\":\"The account receiving delegated stake\",\"staker\":\"The account delegating their stake\"}},\"calculateStakerDelegationDigestHash(address,uint256,address,uint256)\":{\"params\":{\"_stakerNonce\":\"The nonce of the staker. In practice we use the staker's current nonce, stored at `stakerNonce[staker]`\",\"expiry\":\"The desired expiry time of the staker's signature\",\"operator\":\"The operator who is being delegated to\",\"staker\":\"The signing staker\"}},\"completeQueuedWithdrawal((address,address,address,uint256,uint32,address[],uint256[]),address[],uint256,bool)\":{\"details\":\"middlewareTimesIndex is unused, but will be used in the Slasher eventuallybeaconChainETHStrategy shares are non-transferrable, so if `receiveAsTokens = false` and `withdrawal.withdrawer != withdrawal.staker`, note that any beaconChainETHStrategy shares in the `withdrawal` will be _returned to the staker_, rather than transferred to the withdrawer, unlike shares in any other strategies, which will be transferred to the withdrawer.\",\"params\":{\"middlewareTimesIndex\":\"is the index in the operator that the staker who triggered the withdrawal was delegated to's middleware times array\",\"receiveAsTokens\":\"If true, the shares specified in the withdrawal will be withdrawn from the specified strategies themselves and sent to the caller, through calls to `withdrawal.strategies[i].withdraw`. If false, then the shares in the specified strategies will simply be transferred to the caller directly.\",\"tokens\":\"Array in which the i-th entry specifies the `token` input to the 'withdraw' function of the i-th Strategy in the `withdrawal.strategies` array. This input can be provided with zero length if `receiveAsTokens` is set to 'false' (since in that case, this input will be unused)\",\"withdrawal\":\"The Withdrawal to complete.\"}},\"completeQueuedWithdrawals((address,address,address,uint256,uint32,address[],uint256[])[],address[][],uint256[],bool[])\":{\"details\":\"See `completeQueuedWithdrawal` for relevant dev tags\",\"params\":{\"middlewareTimesIndexes\":\"One index to reference per Withdrawal. See `completeQueuedWithdrawal` for the usage of a single index.\",\"receiveAsTokens\":\"Whether or not to complete each withdrawal as tokens. See `completeQueuedWithdrawal` for the usage of a single boolean.\",\"tokens\":\"Array of tokens for each Withdrawal. See `completeQueuedWithdrawal` for the usage of a single array.\",\"withdrawals\":\"The Withdrawals to complete.\"}},\"constructor\":{\"details\":\"Initializes the immutable addresses of the strategy mananger and slasher.\"},\"decreaseDelegatedShares(address,address,uint256)\":{\"details\":\"*If the staker is actively delegated*, then decreases the `staker`'s delegated shares in `strategy` by `shares`. Otherwise does nothing.Callable only by the StrategyManager or EigenPodManager.\",\"params\":{\"shares\":\"The number of shares to decrease.\",\"staker\":\"The address to increase the delegated shares for their operator.\",\"strategy\":\"The strategy in which to decrease the delegated shares.\"}},\"delegateTo(address,(bytes,uint256),bytes32)\":{\"details\":\"The approverSignatureAndExpiry is used in the event that: 1) the operator's `delegationApprover` address is set to a non-zero value. AND 2) neither the operator nor their `delegationApprover` is the `msg.sender`, since in the event that the operator or their delegationApprover is the `msg.sender`, then approval is assumed.In the event that `approverSignatureAndExpiry` is not checked, its content is ignored entirely; it's recommended to use an empty input in this case to save on complexity + gas costs\",\"params\":{\"approverSalt\":\"A unique single use value tied to an individual signature.\",\"approverSignatureAndExpiry\":\"Verifies the operator approves of this delegation\",\"operator\":\"The account (`msg.sender`) is delegating its assets to for use in serving applications built on EigenLayer.\"}},\"delegateToBySignature(address,address,(bytes,uint256),(bytes,uint256),bytes32)\":{\"details\":\"If `staker` is an EOA, then `stakerSignature` is verified to be a valid ECDSA stakerSignature from `staker`, indicating their intention for this action.If `staker` is a contract, then `stakerSignature` will be checked according to EIP-1271.the operator's `delegationApprover` address is set to a non-zero value.neither the operator nor their `delegationApprover` is the `msg.sender`, since in the event that the operator or their delegationApprover is the `msg.sender`, then approval is assumed.This function will revert if the current `block.timestamp` is equal to or exceeds the expiryIn the case that `approverSignatureAndExpiry` is not checked, its content is ignored entirely; it's recommended to use an empty input in this case to save on complexity + gas costs\",\"params\":{\"approverSalt\":\"Is a salt used to help guarantee signature uniqueness. Each salt can only be used once by a given approver.\",\"approverSignatureAndExpiry\":\"is a parameter that will be used for verifying that the operator approves of this delegation action in the event that:\",\"operator\":\"The account (`staker`) is delegating its assets to for use in serving applications built on EigenLayer.\",\"staker\":\"The account delegating stake to an `operator` account\",\"stakerSignatureAndExpiry\":\"Signed data from the staker authorizing delegating stake to an operator\"}},\"domainSeparator()\":{\"details\":\"The domain separator will change in the event of a fork that changes the ChainID.By introducing a domain separator the DApp developers are guaranteed that there can be no signature collision. for more detailed information please read EIP-712.\"},\"getDelegatableShares(address)\":{\"details\":\"Returns two empty arrays in the case that the Staker has no actively-delegateable shares.\"},\"getWithdrawalDelay(address[])\":{\"params\":{\"strategies\":\"The strategies to check withdrawal delays for\"}},\"increaseDelegatedShares(address,address,uint256)\":{\"details\":\"*If the staker is actively delegated*, then increases the `staker`'s delegated shares in `strategy` by `shares`. Otherwise does nothing.Callable only by the StrategyManager or EigenPodManager.\",\"params\":{\"shares\":\"The number of shares to increase.\",\"staker\":\"The address to increase the delegated shares for their operator.\",\"strategy\":\"The strategy in which to increase the delegated shares.\"}},\"initialize(address,address,uint256,uint256,address[],uint256[])\":{\"details\":\"Initializes the addresses of the initial owner, pauser registry, and paused status. minWithdrawalDelayBlocks is set only once here\"},\"modifyOperatorDetails((address,address,uint32))\":{\"details\":\"The caller must have previously registered as an operator in EigenLayer.\",\"params\":{\"newOperatorDetails\":\"is the updated `OperatorDetails` for the operator, to replace their current OperatorDetails`.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause(uint256)\":{\"details\":\"This function can only pause functionality, and thus cannot 'unflip' any bit in `_paused` from 1 to 0.\",\"params\":{\"newPausedStatus\":\"represents the new value for `_paused` to take, which means it may flip several bits at once.\"}},\"registerAsOperator((address,address,uint32),string)\":{\"details\":\"Once an operator is registered, they cannot 'deregister' as an operator, and they will forever be considered \\\"delegated to themself\\\".This function will revert if the caller is already delegated to an operator.Note that the `metadataURI` is *never stored * and is only emitted in the `OperatorMetadataURIUpdated` event\",\"params\":{\"metadataURI\":\"is a URI for the operator's metadata, i.e. a link providing more details on the operator.\",\"registeringOperatorDetails\":\"is the `OperatorDetails` for the operator.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setMinWithdrawalDelayBlocks(uint256)\":{\"params\":{\"newMinWithdrawalDelayBlocks\":\"new value of `minWithdrawalDelayBlocks`.\"}},\"setStrategyWithdrawalDelayBlocks(address[],uint256[])\":{\"params\":{\"strategies\":\"The strategies to set the minimum withdrawal delay blocks for\",\"withdrawalDelayBlocks\":\"The minimum withdrawal delay blocks to set for each strategy\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause(uint256)\":{\"details\":\"This function can only unpause functionality, and thus cannot 'flip' any bit in `_paused` from 0 to 1.\",\"params\":{\"newPausedStatus\":\"represents the new value for `_paused` to take, which means it may flip several bits at once.\"}},\"updateOperatorMetadataURI(string)\":{\"params\":{\"metadataURI\":\"The URI for metadata associated with an operator\"}}},\"title\":\"DelegationManager\",\"version\":1},\"userdoc\":{\"events\":{\"MinWithdrawalDelayBlocksSet(uint256,uint256)\":{\"notice\":\"Emitted when the `minWithdrawalDelayBlocks` variable is modified from `previousValue` to `newValue`.\"},\"OperatorDetailsModified(address,(address,address,uint32))\":{\"notice\":\"Emitted when an operator updates their OperatorDetails to @param newOperatorDetails\"},\"OperatorMetadataURIUpdated(address,string)\":{\"notice\":\"Emitted when @param operator indicates that they are updating their MetadataURI string\"},\"OperatorSharesDecreased(address,address,address,uint256)\":{\"notice\":\"Emitted whenever an operator's shares are decreased for a given strategy. Note that shares is the delta in the operator's shares.\"},\"OperatorSharesIncreased(address,address,address,uint256)\":{\"notice\":\"Emitted whenever an operator's shares are increased for a given strategy. Note that shares is the delta in the operator's shares.\"},\"Paused(address,uint256)\":{\"notice\":\"Emitted when the pause is triggered by `account`, and changed to `newPausedStatus`.\"},\"PauserRegistrySet(address,address)\":{\"notice\":\"Emitted when the `pauserRegistry` is set to `newPauserRegistry`.\"},\"StakerDelegated(address,address)\":{\"notice\":\"Emitted when @param staker delegates to @param operator.\"},\"StakerForceUndelegated(address,address)\":{\"notice\":\"Emitted when @param staker is undelegated via a call not originating from the staker themself\"},\"StakerUndelegated(address,address)\":{\"notice\":\"Emitted when @param staker undelegates from @param operator.\"},\"StrategyWithdrawalDelayBlocksSet(address,uint256,uint256)\":{\"notice\":\"Emitted when the `strategyWithdrawalDelayBlocks` variable is modified from `previousValue` to `newValue`.\"},\"Unpaused(address,uint256)\":{\"notice\":\"Emitted when the pause is lifted by `account`, and changed to `newPausedStatus`.\"},\"WithdrawalCompleted(bytes32)\":{\"notice\":\"Emitted when a queued withdrawal is completed\"},\"WithdrawalQueued(bytes32,(address,address,address,uint256,uint32,address[],uint256[]))\":{\"notice\":\"Emitted when a new withdrawal is queued.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATION_APPROVAL_TYPEHASH()\":{\"notice\":\"The EIP-712 typehash for the `DelegationApproval` struct used by the contract\"},\"DOMAIN_TYPEHASH()\":{\"notice\":\"The EIP-712 typehash for the contract's domain\"},\"STAKER_DELEGATION_TYPEHASH()\":{\"notice\":\"The EIP-712 typehash for the `StakerDelegation` struct used by the contract\"},\"beaconChainETHStrategy()\":{\"notice\":\"Canonical, virtual beacon chain ETH strategy\"},\"calculateCurrentStakerDelegationDigestHash(address,address,uint256)\":{\"notice\":\"Calculates the digestHash for a `staker` to sign to delegate to an `operator`\"},\"calculateDelegationApprovalDigestHash(address,address,address,bytes32,uint256)\":{\"notice\":\"Calculates the digest hash to be signed by the operator's delegationApprove and used in the `delegateTo` and `delegateToBySignature` functions.\"},\"calculateStakerDelegationDigestHash(address,uint256,address,uint256)\":{\"notice\":\"Calculates the digest hash to be signed and used in the `delegateToBySignature` function\"},\"calculateWithdrawalRoot((address,address,address,uint256,uint32,address[],uint256[]))\":{\"notice\":\"Returns the keccak256 hash of `withdrawal`.\"},\"completeQueuedWithdrawal((address,address,address,uint256,uint32,address[],uint256[]),address[],uint256,bool)\":{\"notice\":\"Used to complete the specified `withdrawal`. The caller must match `withdrawal.withdrawer`\"},\"completeQueuedWithdrawals((address,address,address,uint256,uint32,address[],uint256[])[],address[][],uint256[],bool[])\":{\"notice\":\"Array-ified version of `completeQueuedWithdrawal`. Used to complete the specified `withdrawals`. The function caller must match `withdrawals[...].withdrawer`\"},\"cumulativeWithdrawalsQueued(address)\":{\"notice\":\"Mapping: staker => cumulative number of queued withdrawals they have ever initiated.\"},\"decreaseDelegatedShares(address,address,uint256)\":{\"notice\":\"Decreases a staker's delegated share balance in a strategy.\"},\"delegateTo(address,(bytes,uint256),bytes32)\":{\"notice\":\"Caller delegates their stake to an operator.\"},\"delegateToBySignature(address,address,(bytes,uint256),(bytes,uint256),bytes32)\":{\"notice\":\"Caller delegates a staker's stake to an operator with valid signatures from both parties.\"},\"delegatedTo(address)\":{\"notice\":\"Mapping: staker => operator whom the staker is currently delegated to.\"},\"delegationApprover(address)\":{\"notice\":\"Returns the delegationApprover account for an operator\"},\"delegationApproverSaltIsSpent(address,bytes32)\":{\"notice\":\"Mapping: delegationApprover => 32-byte salt => whether or not the salt has already been used by the delegationApprover.\"},\"domainSeparator()\":{\"notice\":\"Getter function for the current EIP-712 domain separator for this contract.\"},\"eigenPodManager()\":{\"notice\":\"The EigenPodManager contract for EigenLayer\"},\"getDelegatableShares(address)\":{\"notice\":\"Returns the number of actively-delegatable shares a staker has across all strategies.\"},\"getOperatorShares(address,address[])\":{\"notice\":\"Given array of strategies, returns array of shares for the operator\"},\"getWithdrawalDelay(address[])\":{\"notice\":\"Given a list of strategies, return the minimum number of blocks that must pass to withdraw from all the inputted strategies. Return value is >= minWithdrawalDelayBlocks as this is the global min withdrawal delay.\"},\"increaseDelegatedShares(address,address,uint256)\":{\"notice\":\"Increases a staker's delegated share balance in a strategy.\"},\"isDelegated(address)\":{\"notice\":\"Returns 'true' if `staker` *is* actively delegated, and 'false' otherwise.\"},\"isOperator(address)\":{\"notice\":\"Returns true is an operator has previously registered for delegation.\"},\"minWithdrawalDelayBlocks()\":{\"notice\":\"Global minimum withdrawal delay for all strategy withdrawals. In a prior Goerli release, we only had a global min withdrawal delay across all strategies. In addition, we now also configure withdrawal delays on a per-strategy basis. To withdraw from a strategy, max(minWithdrawalDelayBlocks, strategyWithdrawalDelayBlocks[strategy]) number of blocks must have passed. See mapping strategyWithdrawalDelayBlocks below for per-strategy withdrawal delays.\"},\"modifyOperatorDetails((address,address,uint32))\":{\"notice\":\"Updates an operator's stored `OperatorDetails`.\"},\"operatorDetails(address)\":{\"notice\":\"Returns the OperatorDetails struct associated with an `operator`.\"},\"operatorShares(address,address)\":{\"notice\":\"returns the total number of shares in `strategy` that are delegated to `operator`.Mapping: operator => strategy => total number of shares in the strategy delegated to the operator.\"},\"pause(uint256)\":{\"notice\":\"This function is used to pause an EigenLayer contract's functionality. It is permissioned to the `pauser` address, which is expected to be a low threshold multisig.\"},\"pauseAll()\":{\"notice\":\"Alias for `pause(type(uint256).max)`.\"},\"paused()\":{\"notice\":\"Returns the current paused status as a uint256.\"},\"paused(uint8)\":{\"notice\":\"Returns 'true' if the `indexed`th bit of `_paused` is 1, and 'false' otherwise\"},\"pauserRegistry()\":{\"notice\":\"Address of the `PauserRegistry` contract that this contract defers to for determining access control (for pausing).\"},\"pendingWithdrawals(bytes32)\":{\"notice\":\"Mapping: hash of withdrawal inputs, aka 'withdrawalRoot' => whether the withdrawal is pending\"},\"queueWithdrawals((address[],uint256[],address)[])\":{\"notice\":\"Allows a staker to withdraw some shares. Withdrawn shares/strategies are immediately removed from the staker. If the staker is delegated, withdrawn shares/strategies are also removed from their operator. All withdrawn shares/strategies are placed in a queue and can be fully withdrawn after a delay.\"},\"registerAsOperator((address,address,uint32),string)\":{\"notice\":\"Registers the caller as an operator in EigenLayer.\"},\"setMinWithdrawalDelayBlocks(uint256)\":{\"notice\":\"Owner-only function for modifying the value of the `minWithdrawalDelayBlocks` variable.\"},\"setPauserRegistry(address)\":{\"notice\":\"Allows the unpauser to set a new pauser registry\"},\"setStrategyWithdrawalDelayBlocks(address[],uint256[])\":{\"notice\":\"Called by owner to set the minimum withdrawal delay blocks for each passed in strategy Note that the min number of blocks to complete a withdrawal of a strategy is MAX(minWithdrawalDelayBlocks, strategyWithdrawalDelayBlocks[strategy])\"},\"slasher()\":{\"notice\":\"The Slasher contract for EigenLayer\"},\"stakerNonce(address)\":{\"notice\":\"Mapping: staker => number of signed messages (used in `delegateToBySignature`) from the staker that this contract has already checked.\"},\"stakerOptOutWindowBlocks(address)\":{\"notice\":\"Returns the stakerOptOutWindowBlocks for an operator\"},\"strategyManager()\":{\"notice\":\"The StrategyManager contract for EigenLayer\"},\"strategyWithdrawalDelayBlocks(address)\":{\"notice\":\"Minimum delay enforced by this contract per Strategy for completing queued withdrawals. Measured in blocks, and adjustable by this contract's owner, up to a maximum of `MAX_WITHDRAWAL_DELAY_BLOCKS`. Minimum value is 0 (i.e. no delay enforced).\"},\"undelegate(address)\":{\"notice\":\"Allows the staker, the staker's operator, or that operator's delegationApprover to undelegate a staker from their operator. Undelegation immediately removes ALL active shares/strategies from both the staker and operator, and places the shares and strategies in the withdrawal queue\"},\"unpause(uint256)\":{\"notice\":\"This function is used to unpause an EigenLayer contract's functionality. It is permissioned to the `unpauser` address, which is expected to be a high threshold multisig or governance contract.\"},\"updateOperatorMetadataURI(string)\":{\"notice\":\"Called by an operator to emit an `OperatorMetadataURIUpdated` event indicating the information has updated.\"}},\"notice\":\"Terms of Service: https://docs.eigenlayer.xyz/overview/terms-of-serviceThis is the contract for delegation in EigenLayer. The main functionalities of this contract are - enabling anyone to register as an operator in EigenLayer - allowing operators to specify parameters related to stakers who delegate to them - enabling any staker to delegate its stake to the operator of its choice (a given staker can only delegate to a single operator at a time) - enabling a staker to undelegate its assets from the operator it is delegated to (performed as part of the withdrawal process, initiated through the StrategyManager)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/DelegationManager.sol\":\"DelegationManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":@openzeppelin-upgrades/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":@openzeppelin/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/\"]},\"sources\":{\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/DelegationManager.sol\":{\"keccak256\":\"0xebb7560a956ece70b08cf36bc548e70c7a04ad4f8718eba194927bcfc03c6190\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac5fe6c05d4268c8fd5853e44662bf9d306313e014d27542f02abd62265168d2\",\"dweb:/ipfs/QmTXcATcpgFpAD8FLmoeWoGYKTh3rRjxntsHCP7wcTWkwY\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/DelegationManagerStorage.sol\":{\"keccak256\":\"0xd834e9bc2f4d03545102004ffa9651e5bf9b559d43e4102bf2955314ef2d94f5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9c7670995b7ca634f94848f426b36278f98389c120b177b737ef325bd457ca00\",\"dweb:/ipfs/QmRtLyA4Kq5TrhhhXQAp2jAH7bJ5gqbjrr1JesD6wRbqqV\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/EIP1271SignatureUtils.sol\":{\"keccak256\":\"0xe92d584c47c5828e026a8082af3da38a853e3942c4da7deb705d6470a41afab3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1c436c578781fd7d3dffdb24e906819422819f5e9a71d39ee63166a3d5cb3373\",\"dweb:/ipfs/QmP7bJhYqLpwqk2Xq4tqDCUMi2nFAhxxW3Pz36ctE1sbdD\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x8cc03c5ac17e8a7396e487cda41fc1f1dfdb91db7d528e6da84bee3b6dd7e167\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607818f1b44548c2d8268176f73cdb290e1faed971b1061930d92698366e2a11\",\"dweb:/ipfs/QmQibMe3r5no95b6q7isGT5R75V8xSofWEDLXzp95b7LgZ\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x84ac2d2f343df1e683da7a12bbcf70db542a7a7a0cea90a5d70fcb5e5d035481\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73ae8e0c6f975052973265113d762629002ce33987b1933c2a378667e2816f2f\",\"dweb:/ipfs/QmQAootkVfoe4PLaYbT4Xob2dJRm3bZfbCffEHRbCYXNPF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IStrategyManager","name":"_strategyManager","type":"address"},{"internalType":"contract ISlasher","name":"_slasher","type":"address"},{"internalType":"contract IEigenPodManager","name":"_eigenPodManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"previousValue","type":"uint256","indexed":false},{"internalType":"uint256","name":"newValue","type":"uint256","indexed":false}],"type":"event","name":"MinWithdrawalDelayBlocksSet","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"struct IDelegationManager.OperatorDetails","name":"newOperatorDetails","type":"tuple","components":[{"internalType":"address","name":"__deprecated_earningsReceiver","type":"address"},{"internalType":"address","name":"delegationApprover","type":"address"},{"internalType":"uint32","name":"stakerOptOutWindowBlocks","type":"uint32"}],"indexed":false}],"type":"event","name":"OperatorDetailsModified","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"string","name":"metadataURI","type":"string","indexed":false}],"type":"event","name":"OperatorMetadataURIUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"struct IDelegationManager.OperatorDetails","name":"operatorDetails","type":"tuple","components":[{"internalType":"address","name":"__deprecated_earningsReceiver","type":"address"},{"internalType":"address","name":"delegationApprover","type":"address"},{"internalType":"uint32","name":"stakerOptOutWindowBlocks","type":"uint32"}],"indexed":false}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"staker","type":"address","indexed":false},{"internalType":"contract IStrategy","name":"strategy","type":"address","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"OperatorSharesDecreased","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"staker","type":"address","indexed":false},{"internalType":"contract IStrategy","name":"strategy","type":"address","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"OperatorSharesIncreased","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"newPausedStatus","type":"uint256","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"contract IPauserRegistry","name":"pauserRegistry","type":"address","indexed":false},{"internalType":"contract IPauserRegistry","name":"newPauserRegistry","type":"address","indexed":false}],"type":"event","name":"PauserRegistrySet","anonymous":false},{"inputs":[{"internalType":"address","name":"staker","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"StakerDelegated","anonymous":false},{"inputs":[{"internalType":"address","name":"staker","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"StakerForceUndelegated","anonymous":false},{"inputs":[{"internalType":"address","name":"staker","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"StakerUndelegated","anonymous":false},{"inputs":[{"internalType":"contract IStrategy","name":"strategy","type":"address","indexed":false},{"internalType":"uint256","name":"previousValue","type":"uint256","indexed":false},{"internalType":"uint256","name":"newValue","type":"uint256","indexed":false}],"type":"event","name":"StrategyWithdrawalDelayBlocksSet","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"newPausedStatus","type":"uint256","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"withdrawalRoot","type":"bytes32","indexed":false}],"type":"event","name":"WithdrawalCompleted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"withdrawalRoot","type":"bytes32","indexed":false},{"internalType":"struct IDelegationManager.Withdrawal","name":"withdrawal","type":"tuple","components":[{"internalType":"address","name":"staker","type":"address"},{"internalType":"address","name":"delegatedTo","type":"address"},{"internalType":"address","name":"withdrawer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint32","name":"startBlock","type":"uint32"},{"internalType":"contract IStrategy[]","name":"strategies","type":"address[]"},{"internalType":"uint256[]","name":"shares","type":"uint256[]"}],"indexed":false}],"type":"event","name":"WithdrawalQueued","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATION_APPROVAL_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_STAKER_OPT_OUT_WINDOW_BLOCKS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_WITHDRAWAL_DELAY_BLOCKS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"STAKER_DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"beaconChainETHStrategy","outputs":[{"internalType":"contract IStrategy","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"staker","type":"address"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}],"stateMutability":"view","type":"function","name":"calculateCurrentStakerDelegationDigestHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"staker","type":"address"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"_delegationApprover","type":"address"},{"internalType":"bytes32","name":"approverSalt","type":"bytes32"},{"internalType":"uint256","name":"expiry","type":"uint256"}],"stateMutability":"view","type":"function","name":"calculateDelegationApprovalDigestHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"staker","type":"address"},{"internalType":"uint256","name":"_stakerNonce","type":"uint256"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}],"stateMutability":"view","type":"function","name":"calculateStakerDelegationDigestHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct IDelegationManager.Withdrawal","name":"withdrawal","type":"tuple","components":[{"internalType":"address","name":"staker","type":"address"},{"internalType":"address","name":"delegatedTo","type":"address"},{"internalType":"address","name":"withdrawer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint32","name":"startBlock","type":"uint32"},{"internalType":"contract IStrategy[]","name":"strategies","type":"address[]"},{"internalType":"uint256[]","name":"shares","type":"uint256[]"}]}],"stateMutability":"pure","type":"function","name":"calculateWithdrawalRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct IDelegationManager.Withdrawal","name":"withdrawal","type":"tuple","components":[{"internalType":"address","name":"staker","type":"address"},{"internalType":"address","name":"delegatedTo","type":"address"},{"internalType":"address","name":"withdrawer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint32","name":"startBlock","type":"uint32"},{"internalType":"contract IStrategy[]","name":"strategies","type":"address[]"},{"internalType":"uint256[]","name":"shares","type":"uint256[]"}]},{"internalType":"contract IERC20[]","name":"tokens","type":"address[]"},{"internalType":"uint256","name":"middlewareTimesIndex","type":"uint256"},{"internalType":"bool","name":"receiveAsTokens","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"completeQueuedWithdrawal"},{"inputs":[{"internalType":"struct IDelegationManager.Withdrawal[]","name":"withdrawals","type":"tuple[]","components":[{"internalType":"address","name":"staker","type":"address"},{"internalType":"address","name":"delegatedTo","type":"address"},{"internalType":"address","name":"withdrawer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint32","name":"startBlock","type":"uint32"},{"internalType":"contract IStrategy[]","name":"strategies","type":"address[]"},{"internalType":"uint256[]","name":"shares","type":"uint256[]"}]},{"internalType":"contract IERC20[][]","name":"tokens","type":"address[][]"},{"internalType":"uint256[]","name":"middlewareTimesIndexes","type":"uint256[]"},{"internalType":"bool[]","name":"receiveAsTokens","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"completeQueuedWithdrawals"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeWithdrawalsQueued","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"staker","type":"address"},{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseDelegatedShares"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"struct ISignatureUtils.SignatureWithExpiry","name":"approverSignatureAndExpiry","type":"tuple","components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"internalType":"bytes32","name":"approverSalt","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"delegateTo"},{"inputs":[{"internalType":"address","name":"staker","type":"address"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"struct ISignatureUtils.SignatureWithExpiry","name":"stakerSignatureAndExpiry","type":"tuple","components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"internalType":"struct ISignatureUtils.SignatureWithExpiry","name":"approverSignatureAndExpiry","type":"tuple","components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"internalType":"bytes32","name":"approverSalt","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"delegateToBySignature"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"delegatedTo","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"delegationApprover","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"delegationApproverSaltIsSpent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"domainSeparator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eigenPodManager","outputs":[{"internalType":"contract IEigenPodManager","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"stateMutability":"view","type":"function","name":"getDelegatableShares","outputs":[{"internalType":"contract IStrategy[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"contract IStrategy[]","name":"strategies","type":"address[]"}],"stateMutability":"view","type":"function","name":"getOperatorShares","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"contract IStrategy[]","name":"strategies","type":"address[]"}],"stateMutability":"view","type":"function","name":"getWithdrawalDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"staker","type":"address"},{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseDelegatedShares"},{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"contract IPauserRegistry","name":"_pauserRegistry","type":"address"},{"internalType":"uint256","name":"initialPausedStatus","type":"uint256"},{"internalType":"uint256","name":"_minWithdrawalDelayBlocks","type":"uint256"},{"internalType":"contract IStrategy[]","name":"_strategies","type":"address[]"},{"internalType":"uint256[]","name":"_withdrawalDelayBlocks","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"stateMutability":"view","type":"function","name":"isDelegated","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minWithdrawalDelayBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct IDelegationManager.OperatorDetails","name":"newOperatorDetails","type":"tuple","components":[{"internalType":"address","name":"__deprecated_earningsReceiver","type":"address"},{"internalType":"address","name":"delegationApprover","type":"address"},{"internalType":"uint32","name":"stakerOptOutWindowBlocks","type":"uint32"}]}],"stateMutability":"nonpayable","type":"function","name":"modifyOperatorDetails"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorDetails","outputs":[{"internalType":"struct IDelegationManager.OperatorDetails","name":"","type":"tuple","components":[{"internalType":"address","name":"__deprecated_earningsReceiver","type":"address"},{"internalType":"address","name":"delegationApprover","type":"address"},{"internalType":"uint32","name":"stakerOptOutWindowBlocks","type":"uint32"}]}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"contract IStrategy","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"operatorShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"newPausedStatus","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseAll"},{"inputs":[{"internalType":"uint8","name":"index","type":"uint8"}],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pauserRegistry","outputs":[{"internalType":"contract IPauserRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"pendingWithdrawals","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct IDelegationManager.QueuedWithdrawalParams[]","name":"queuedWithdrawalParams","type":"tuple[]","components":[{"internalType":"contract IStrategy[]","name":"strategies","type":"address[]"},{"internalType":"uint256[]","name":"shares","type":"uint256[]"},{"internalType":"address","name":"withdrawer","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"queueWithdrawals","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"struct IDelegationManager.OperatorDetails","name":"registeringOperatorDetails","type":"tuple","components":[{"internalType":"address","name":"__deprecated_earningsReceiver","type":"address"},{"internalType":"address","name":"delegationApprover","type":"address"},{"internalType":"uint32","name":"stakerOptOutWindowBlocks","type":"uint32"}]},{"internalType":"string","name":"metadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerAsOperator"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"newMinWithdrawalDelayBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMinWithdrawalDelayBlocks"},{"inputs":[{"internalType":"contract IPauserRegistry","name":"newPauserRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPauserRegistry"},{"inputs":[{"internalType":"contract IStrategy[]","name":"strategies","type":"address[]"},{"internalType":"uint256[]","name":"withdrawalDelayBlocks","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"setStrategyWithdrawalDelayBlocks"},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"contract ISlasher","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"stakerNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stakerOptOutWindowBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"strategyManager","outputs":[{"internalType":"contract IStrategyManager","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IStrategy","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"strategyWithdrawalDelayBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"undelegate","outputs":[{"internalType":"bytes32[]","name":"withdrawalRoots","type":"bytes32[]"}]},{"inputs":[{"internalType":"uint256","name":"newPausedStatus","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"string","name":"metadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateOperatorMetadataURI"}],"devdoc":{"kind":"dev","methods":{"calculateCurrentStakerDelegationDigestHash(address,address,uint256)":{"params":{"expiry":"The desired expiry time of the staker's signature","operator":"The operator who is being delegated to","staker":"The signing staker"}},"calculateDelegationApprovalDigestHash(address,address,address,bytes32,uint256)":{"params":{"_delegationApprover":"the operator's `delegationApprover` who will be signing the delegationHash (in general)","approverSalt":"A unique and single use value associated with the approver signature.","expiry":"Time after which the approver's signature becomes invalid","operator":"The account receiving delegated stake","staker":"The account delegating their stake"}},"calculateStakerDelegationDigestHash(address,uint256,address,uint256)":{"params":{"_stakerNonce":"The nonce of the staker. In practice we use the staker's current nonce, stored at `stakerNonce[staker]`","expiry":"The desired expiry time of the staker's signature","operator":"The operator who is being delegated to","staker":"The signing staker"}},"completeQueuedWithdrawal((address,address,address,uint256,uint32,address[],uint256[]),address[],uint256,bool)":{"details":"middlewareTimesIndex is unused, but will be used in the Slasher eventuallybeaconChainETHStrategy shares are non-transferrable, so if `receiveAsTokens = false` and `withdrawal.withdrawer != withdrawal.staker`, note that any beaconChainETHStrategy shares in the `withdrawal` will be _returned to the staker_, rather than transferred to the withdrawer, unlike shares in any other strategies, which will be transferred to the withdrawer.","params":{"middlewareTimesIndex":"is the index in the operator that the staker who triggered the withdrawal was delegated to's middleware times array","receiveAsTokens":"If true, the shares specified in the withdrawal will be withdrawn from the specified strategies themselves and sent to the caller, through calls to `withdrawal.strategies[i].withdraw`. If false, then the shares in the specified strategies will simply be transferred to the caller directly.","tokens":"Array in which the i-th entry specifies the `token` input to the 'withdraw' function of the i-th Strategy in the `withdrawal.strategies` array. This input can be provided with zero length if `receiveAsTokens` is set to 'false' (since in that case, this input will be unused)","withdrawal":"The Withdrawal to complete."}},"completeQueuedWithdrawals((address,address,address,uint256,uint32,address[],uint256[])[],address[][],uint256[],bool[])":{"details":"See `completeQueuedWithdrawal` for relevant dev tags","params":{"middlewareTimesIndexes":"One index to reference per Withdrawal. See `completeQueuedWithdrawal` for the usage of a single index.","receiveAsTokens":"Whether or not to complete each withdrawal as tokens. See `completeQueuedWithdrawal` for the usage of a single boolean.","tokens":"Array of tokens for each Withdrawal. See `completeQueuedWithdrawal` for the usage of a single array.","withdrawals":"The Withdrawals to complete."}},"constructor":{"details":"Initializes the immutable addresses of the strategy mananger and slasher."},"decreaseDelegatedShares(address,address,uint256)":{"details":"*If the staker is actively delegated*, then decreases the `staker`'s delegated shares in `strategy` by `shares`. Otherwise does nothing.Callable only by the StrategyManager or EigenPodManager.","params":{"shares":"The number of shares to decrease.","staker":"The address to increase the delegated shares for their operator.","strategy":"The strategy in which to decrease the delegated shares."}},"delegateTo(address,(bytes,uint256),bytes32)":{"details":"The approverSignatureAndExpiry is used in the event that: 1) the operator's `delegationApprover` address is set to a non-zero value. AND 2) neither the operator nor their `delegationApprover` is the `msg.sender`, since in the event that the operator or their delegationApprover is the `msg.sender`, then approval is assumed.In the event that `approverSignatureAndExpiry` is not checked, its content is ignored entirely; it's recommended to use an empty input in this case to save on complexity + gas costs","params":{"approverSalt":"A unique single use value tied to an individual signature.","approverSignatureAndExpiry":"Verifies the operator approves of this delegation","operator":"The account (`msg.sender`) is delegating its assets to for use in serving applications built on EigenLayer."}},"delegateToBySignature(address,address,(bytes,uint256),(bytes,uint256),bytes32)":{"details":"If `staker` is an EOA, then `stakerSignature` is verified to be a valid ECDSA stakerSignature from `staker`, indicating their intention for this action.If `staker` is a contract, then `stakerSignature` will be checked according to EIP-1271.the operator's `delegationApprover` address is set to a non-zero value.neither the operator nor their `delegationApprover` is the `msg.sender`, since in the event that the operator or their delegationApprover is the `msg.sender`, then approval is assumed.This function will revert if the current `block.timestamp` is equal to or exceeds the expiryIn the case that `approverSignatureAndExpiry` is not checked, its content is ignored entirely; it's recommended to use an empty input in this case to save on complexity + gas costs","params":{"approverSalt":"Is a salt used to help guarantee signature uniqueness. Each salt can only be used once by a given approver.","approverSignatureAndExpiry":"is a parameter that will be used for verifying that the operator approves of this delegation action in the event that:","operator":"The account (`staker`) is delegating its assets to for use in serving applications built on EigenLayer.","staker":"The account delegating stake to an `operator` account","stakerSignatureAndExpiry":"Signed data from the staker authorizing delegating stake to an operator"}},"domainSeparator()":{"details":"The domain separator will change in the event of a fork that changes the ChainID.By introducing a domain separator the DApp developers are guaranteed that there can be no signature collision. for more detailed information please read EIP-712."},"getDelegatableShares(address)":{"details":"Returns two empty arrays in the case that the Staker has no actively-delegateable shares."},"getWithdrawalDelay(address[])":{"params":{"strategies":"The strategies to check withdrawal delays for"}},"increaseDelegatedShares(address,address,uint256)":{"details":"*If the staker is actively delegated*, then increases the `staker`'s delegated shares in `strategy` by `shares`. Otherwise does nothing.Callable only by the StrategyManager or EigenPodManager.","params":{"shares":"The number of shares to increase.","staker":"The address to increase the delegated shares for their operator.","strategy":"The strategy in which to increase the delegated shares."}},"initialize(address,address,uint256,uint256,address[],uint256[])":{"details":"Initializes the addresses of the initial owner, pauser registry, and paused status. minWithdrawalDelayBlocks is set only once here"},"modifyOperatorDetails((address,address,uint32))":{"details":"The caller must have previously registered as an operator in EigenLayer.","params":{"newOperatorDetails":"is the updated `OperatorDetails` for the operator, to replace their current OperatorDetails`."}},"owner()":{"details":"Returns the address of the current owner."},"pause(uint256)":{"details":"This function can only pause functionality, and thus cannot 'unflip' any bit in `_paused` from 1 to 0.","params":{"newPausedStatus":"represents the new value for `_paused` to take, which means it may flip several bits at once."}},"registerAsOperator((address,address,uint32),string)":{"details":"Once an operator is registered, they cannot 'deregister' as an operator, and they will forever be considered \"delegated to themself\".This function will revert if the caller is already delegated to an operator.Note that the `metadataURI` is *never stored * and is only emitted in the `OperatorMetadataURIUpdated` event","params":{"metadataURI":"is a URI for the operator's metadata, i.e. a link providing more details on the operator.","registeringOperatorDetails":"is the `OperatorDetails` for the operator."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setMinWithdrawalDelayBlocks(uint256)":{"params":{"newMinWithdrawalDelayBlocks":"new value of `minWithdrawalDelayBlocks`."}},"setStrategyWithdrawalDelayBlocks(address[],uint256[])":{"params":{"strategies":"The strategies to set the minimum withdrawal delay blocks for","withdrawalDelayBlocks":"The minimum withdrawal delay blocks to set for each strategy"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unpause(uint256)":{"details":"This function can only unpause functionality, and thus cannot 'flip' any bit in `_paused` from 0 to 1.","params":{"newPausedStatus":"represents the new value for `_paused` to take, which means it may flip several bits at once."}},"updateOperatorMetadataURI(string)":{"params":{"metadataURI":"The URI for metadata associated with an operator"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATION_APPROVAL_TYPEHASH()":{"notice":"The EIP-712 typehash for the `DelegationApproval` struct used by the contract"},"DOMAIN_TYPEHASH()":{"notice":"The EIP-712 typehash for the contract's domain"},"STAKER_DELEGATION_TYPEHASH()":{"notice":"The EIP-712 typehash for the `StakerDelegation` struct used by the contract"},"beaconChainETHStrategy()":{"notice":"Canonical, virtual beacon chain ETH strategy"},"calculateCurrentStakerDelegationDigestHash(address,address,uint256)":{"notice":"Calculates the digestHash for a `staker` to sign to delegate to an `operator`"},"calculateDelegationApprovalDigestHash(address,address,address,bytes32,uint256)":{"notice":"Calculates the digest hash to be signed by the operator's delegationApprove and used in the `delegateTo` and `delegateToBySignature` functions."},"calculateStakerDelegationDigestHash(address,uint256,address,uint256)":{"notice":"Calculates the digest hash to be signed and used in the `delegateToBySignature` function"},"calculateWithdrawalRoot((address,address,address,uint256,uint32,address[],uint256[]))":{"notice":"Returns the keccak256 hash of `withdrawal`."},"completeQueuedWithdrawal((address,address,address,uint256,uint32,address[],uint256[]),address[],uint256,bool)":{"notice":"Used to complete the specified `withdrawal`. The caller must match `withdrawal.withdrawer`"},"completeQueuedWithdrawals((address,address,address,uint256,uint32,address[],uint256[])[],address[][],uint256[],bool[])":{"notice":"Array-ified version of `completeQueuedWithdrawal`. Used to complete the specified `withdrawals`. The function caller must match `withdrawals[...].withdrawer`"},"cumulativeWithdrawalsQueued(address)":{"notice":"Mapping: staker => cumulative number of queued withdrawals they have ever initiated."},"decreaseDelegatedShares(address,address,uint256)":{"notice":"Decreases a staker's delegated share balance in a strategy."},"delegateTo(address,(bytes,uint256),bytes32)":{"notice":"Caller delegates their stake to an operator."},"delegateToBySignature(address,address,(bytes,uint256),(bytes,uint256),bytes32)":{"notice":"Caller delegates a staker's stake to an operator with valid signatures from both parties."},"delegatedTo(address)":{"notice":"Mapping: staker => operator whom the staker is currently delegated to."},"delegationApprover(address)":{"notice":"Returns the delegationApprover account for an operator"},"delegationApproverSaltIsSpent(address,bytes32)":{"notice":"Mapping: delegationApprover => 32-byte salt => whether or not the salt has already been used by the delegationApprover."},"domainSeparator()":{"notice":"Getter function for the current EIP-712 domain separator for this contract."},"eigenPodManager()":{"notice":"The EigenPodManager contract for EigenLayer"},"getDelegatableShares(address)":{"notice":"Returns the number of actively-delegatable shares a staker has across all strategies."},"getOperatorShares(address,address[])":{"notice":"Given array of strategies, returns array of shares for the operator"},"getWithdrawalDelay(address[])":{"notice":"Given a list of strategies, return the minimum number of blocks that must pass to withdraw from all the inputted strategies. Return value is >= minWithdrawalDelayBlocks as this is the global min withdrawal delay."},"increaseDelegatedShares(address,address,uint256)":{"notice":"Increases a staker's delegated share balance in a strategy."},"isDelegated(address)":{"notice":"Returns 'true' if `staker` *is* actively delegated, and 'false' otherwise."},"isOperator(address)":{"notice":"Returns true is an operator has previously registered for delegation."},"minWithdrawalDelayBlocks()":{"notice":"Global minimum withdrawal delay for all strategy withdrawals. In a prior Goerli release, we only had a global min withdrawal delay across all strategies. In addition, we now also configure withdrawal delays on a per-strategy basis. To withdraw from a strategy, max(minWithdrawalDelayBlocks, strategyWithdrawalDelayBlocks[strategy]) number of blocks must have passed. See mapping strategyWithdrawalDelayBlocks below for per-strategy withdrawal delays."},"modifyOperatorDetails((address,address,uint32))":{"notice":"Updates an operator's stored `OperatorDetails`."},"operatorDetails(address)":{"notice":"Returns the OperatorDetails struct associated with an `operator`."},"operatorShares(address,address)":{"notice":"returns the total number of shares in `strategy` that are delegated to `operator`.Mapping: operator => strategy => total number of shares in the strategy delegated to the operator."},"pause(uint256)":{"notice":"This function is used to pause an EigenLayer contract's functionality. It is permissioned to the `pauser` address, which is expected to be a low threshold multisig."},"pauseAll()":{"notice":"Alias for `pause(type(uint256).max)`."},"paused()":{"notice":"Returns the current paused status as a uint256."},"paused(uint8)":{"notice":"Returns 'true' if the `indexed`th bit of `_paused` is 1, and 'false' otherwise"},"pauserRegistry()":{"notice":"Address of the `PauserRegistry` contract that this contract defers to for determining access control (for pausing)."},"pendingWithdrawals(bytes32)":{"notice":"Mapping: hash of withdrawal inputs, aka 'withdrawalRoot' => whether the withdrawal is pending"},"queueWithdrawals((address[],uint256[],address)[])":{"notice":"Allows a staker to withdraw some shares. Withdrawn shares/strategies are immediately removed from the staker. If the staker is delegated, withdrawn shares/strategies are also removed from their operator. All withdrawn shares/strategies are placed in a queue and can be fully withdrawn after a delay."},"registerAsOperator((address,address,uint32),string)":{"notice":"Registers the caller as an operator in EigenLayer."},"setMinWithdrawalDelayBlocks(uint256)":{"notice":"Owner-only function for modifying the value of the `minWithdrawalDelayBlocks` variable."},"setPauserRegistry(address)":{"notice":"Allows the unpauser to set a new pauser registry"},"setStrategyWithdrawalDelayBlocks(address[],uint256[])":{"notice":"Called by owner to set the minimum withdrawal delay blocks for each passed in strategy Note that the min number of blocks to complete a withdrawal of a strategy is MAX(minWithdrawalDelayBlocks, strategyWithdrawalDelayBlocks[strategy])"},"slasher()":{"notice":"The Slasher contract for EigenLayer"},"stakerNonce(address)":{"notice":"Mapping: staker => number of signed messages (used in `delegateToBySignature`) from the staker that this contract has already checked."},"stakerOptOutWindowBlocks(address)":{"notice":"Returns the stakerOptOutWindowBlocks for an operator"},"strategyManager()":{"notice":"The StrategyManager contract for EigenLayer"},"strategyWithdrawalDelayBlocks(address)":{"notice":"Minimum delay enforced by this contract per Strategy for completing queued withdrawals. Measured in blocks, and adjustable by this contract's owner, up to a maximum of `MAX_WITHDRAWAL_DELAY_BLOCKS`. Minimum value is 0 (i.e. no delay enforced)."},"undelegate(address)":{"notice":"Allows the staker, the staker's operator, or that operator's delegationApprover to undelegate a staker from their operator. Undelegation immediately removes ALL active shares/strategies from both the staker and operator, and places the shares and strategies in the withdrawal queue"},"unpause(uint256)":{"notice":"This function is used to unpause an EigenLayer contract's functionality. It is permissioned to the `unpauser` address, which is expected to be a high threshold multisig or governance contract."},"updateOperatorMetadataURI(string)":{"notice":"Called by an operator to emit an `OperatorMetadataURIUpdated` event indicating the information has updated."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","@openzeppelin-upgrades/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","@openzeppelin/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/","ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/","eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/","openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/DelegationManager.sol":"DelegationManager"},"evmVersion":"london","libraries":{}},"sources":{"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/DelegationManager.sol":{"keccak256":"0xebb7560a956ece70b08cf36bc548e70c7a04ad4f8718eba194927bcfc03c6190","urls":["bzz-raw://ac5fe6c05d4268c8fd5853e44662bf9d306313e014d27542f02abd62265168d2","dweb:/ipfs/QmTXcATcpgFpAD8FLmoeWoGYKTh3rRjxntsHCP7wcTWkwY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/DelegationManagerStorage.sol":{"keccak256":"0xd834e9bc2f4d03545102004ffa9651e5bf9b559d43e4102bf2955314ef2d94f5","urls":["bzz-raw://9c7670995b7ca634f94848f426b36278f98389c120b177b737ef325bd457ca00","dweb:/ipfs/QmRtLyA4Kq5TrhhhXQAp2jAH7bJ5gqbjrr1JesD6wRbqqV"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/EIP1271SignatureUtils.sol":{"keccak256":"0xe92d584c47c5828e026a8082af3da38a853e3942c4da7deb705d6470a41afab3","urls":["bzz-raw://1c436c578781fd7d3dffdb24e906819422819f5e9a71d39ee63166a3d5cb3373","dweb:/ipfs/QmP7bJhYqLpwqk2Xq4tqDCUMi2nFAhxxW3Pz36ctE1sbdD"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x8cc03c5ac17e8a7396e487cda41fc1f1dfdb91db7d528e6da84bee3b6dd7e167","urls":["bzz-raw://607818f1b44548c2d8268176f73cdb290e1faed971b1061930d92698366e2a11","dweb:/ipfs/QmQibMe3r5no95b6q7isGT5R75V8xSofWEDLXzp95b7LgZ"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x84ac2d2f343df1e683da7a12bbcf70db542a7a7a0cea90a5d70fcb5e5d035481","urls":["bzz-raw://73ae8e0c6f975052973265113d762629002ce33987b1933c2a378667e2816f2f","dweb:/ipfs/QmQAootkVfoe4PLaYbT4Xob2dJRm3bZfbCffEHRbCYXNPF"],"license":"MIT"}},"version":1},"id":2} \ No newline at end of file diff --git a/telemetry_api/priv/abi/IRegistryCoordinator.json b/telemetry_api/priv/abi/IRegistryCoordinator.json new file mode 100644 index 000000000..53ece9cf8 --- /dev/null +++ b/telemetry_api/priv/abi/IRegistryCoordinator.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"blsApkRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IBLSApkRegistry"}],"stateMutability":"view"},{"type":"function","name":"ejectOperator","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"quorumNumbers","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCurrentQuorumBitmap","inputs":[{"name":"operatorId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint192","internalType":"uint192"}],"stateMutability":"view"},{"type":"function","name":"getOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRegistryCoordinator.OperatorInfo","components":[{"name":"operatorId","type":"bytes32","internalType":"bytes32"},{"name":"status","type":"uint8","internalType":"enum IRegistryCoordinator.OperatorStatus"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorFromId","inputs":[{"name":"operatorId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOperatorId","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getOperatorSetParams","inputs":[{"name":"quorumNumber","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRegistryCoordinator.OperatorSetParam","components":[{"name":"maxOperatorCount","type":"uint32","internalType":"uint32"},{"name":"kickBIPsOfOperatorStake","type":"uint16","internalType":"uint16"},{"name":"kickBIPsOfTotalStake","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorStatus","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum IRegistryCoordinator.OperatorStatus"}],"stateMutability":"view"},{"type":"function","name":"getQuorumBitmapAtBlockNumberByIndex","inputs":[{"name":"operatorId","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint32","internalType":"uint32"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint192","internalType":"uint192"}],"stateMutability":"view"},{"type":"function","name":"getQuorumBitmapHistoryLength","inputs":[{"name":"operatorId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getQuorumBitmapIndicesAtBlockNumber","inputs":[{"name":"blockNumber","type":"uint32","internalType":"uint32"},{"name":"operatorIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"uint32[]","internalType":"uint32[]"}],"stateMutability":"view"},{"type":"function","name":"getQuorumBitmapUpdateByIndex","inputs":[{"name":"operatorId","type":"bytes32","internalType":"bytes32"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRegistryCoordinator.QuorumBitmapUpdate","components":[{"name":"updateBlockNumber","type":"uint32","internalType":"uint32"},{"name":"nextUpdateBlockNumber","type":"uint32","internalType":"uint32"},{"name":"quorumBitmap","type":"uint192","internalType":"uint192"}]}],"stateMutability":"view"},{"type":"function","name":"indexRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IIndexRegistry"}],"stateMutability":"view"},{"type":"function","name":"numRegistries","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pubkeyRegistrationMessageHash","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"quorumCount","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"quorumUpdateBlockNumber","inputs":[{"name":"quorumNumber","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registries","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"stakeRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IStakeRegistry"}],"stateMutability":"view"},{"type":"event","name":"ChurnApproverUpdated","inputs":[{"name":"prevChurnApprover","type":"address","indexed":false,"internalType":"address"},{"name":"newChurnApprover","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"EjectorUpdated","inputs":[{"name":"prevEjector","type":"address","indexed":false,"internalType":"address"},{"name":"newEjector","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorDeregistered","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"operatorId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"operatorId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"OperatorSetParamsUpdated","inputs":[{"name":"quorumNumber","type":"uint8","indexed":true,"internalType":"uint8"},{"name":"operatorSetParams","type":"tuple","indexed":false,"internalType":"struct IRegistryCoordinator.OperatorSetParam","components":[{"name":"maxOperatorCount","type":"uint32","internalType":"uint32"},{"name":"kickBIPsOfOperatorStake","type":"uint16","internalType":"uint16"},{"name":"kickBIPsOfTotalStake","type":"uint16","internalType":"uint16"}]}],"anonymous":false},{"type":"event","name":"QuorumBlockNumberUpdated","inputs":[{"name":"quorumNumber","type":"uint8","indexed":true,"internalType":"uint8"},{"name":"blocknumber","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"blsApkRegistry()":"5df45946","ejectOperator(address,bytes)":"6e3b17db","getCurrentQuorumBitmap(bytes32)":"871ef049","getOperator(address)":"5865c60c","getOperatorFromId(bytes32)":"296bb064","getOperatorId(address)":"13542a4e","getOperatorSetParams(uint8)":"e65797ad","getOperatorStatus(address)":"fd39105a","getQuorumBitmapAtBlockNumberByIndex(bytes32,uint32,uint256)":"04ec6351","getQuorumBitmapHistoryLength(bytes32)":"03fd3492","getQuorumBitmapIndicesAtBlockNumber(uint32,bytes32[])":"c391425e","getQuorumBitmapUpdateByIndex(bytes32,uint256)":"1eb812da","indexRegistry()":"9e9923c2","numRegistries()":"d72d8dd6","owner()":"8da5cb5b","pubkeyRegistrationMessageHash(address)":"3c2a7f4c","quorumCount()":"9aa1653d","quorumUpdateBlockNumber(uint8)":"249a0c42","registries(uint256)":"6347c900","stakeRegistry()":"68304835"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prevChurnApprover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newChurnApprover\",\"type\":\"address\"}],\"name\":\"ChurnApproverUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prevEjector\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newEjector\",\"type\":\"address\"}],\"name\":\"EjectorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"OperatorDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxOperatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\"}],\"indexed\":false,\"internalType\":\"struct IRegistryCoordinator.OperatorSetParam\",\"name\":\"operatorSetParams\",\"type\":\"tuple\"}],\"name\":\"OperatorSetParamsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blocknumber\",\"type\":\"uint256\"}],\"name\":\"QuorumBlockNumberUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"blsApkRegistry\",\"outputs\":[{\"internalType\":\"contract IBLSApkRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"ejectOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"getCurrentQuorumBitmap\",\"outputs\":[{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"enum IRegistryCoordinator.OperatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"internalType\":\"struct IRegistryCoordinator.OperatorInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"getOperatorFromId\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getOperatorSetParams\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxOperatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\"}],\"internalType\":\"struct IRegistryCoordinator.OperatorSetParam\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorStatus\",\"outputs\":[{\"internalType\":\"enum IRegistryCoordinator.OperatorStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getQuorumBitmapAtBlockNumberByIndex\",\"outputs\":[{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"getQuorumBitmapHistoryLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[]\",\"name\":\"operatorIds\",\"type\":\"bytes32[]\"}],\"name\":\"getQuorumBitmapIndicesAtBlockNumber\",\"outputs\":[{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getQuorumBitmapUpdateByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint192\",\"name\":\"quorumBitmap\",\"type\":\"uint192\"}],\"internalType\":\"struct IRegistryCoordinator.QuorumBitmapUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexRegistry\",\"outputs\":[{\"internalType\":\"contract IIndexRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numRegistries\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"pubkeyRegistrationMessageHash\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumCount\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"quorumUpdateBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"registries\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeRegistry\",\"outputs\":[{\"internalType\":\"contract IStakeRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Layr Labs, Inc.\",\"kind\":\"dev\",\"methods\":{\"ejectOperator(address,bytes)\":{\"params\":{\"operator\":\"is the operator to eject\",\"quorumNumbers\":\"are the quorum numbers to eject the operator from\"}},\"getQuorumBitmapAtBlockNumberByIndex(bytes32,uint32,uint256)\":{\"details\":\"reverts if `index` is incorrect \"},\"pubkeyRegistrationMessageHash(address)\":{\"params\":{\"operator\":\"is the address of the operator registering their BLS public key\"}}},\"title\":\"Interface for a contract that coordinates between various registries for an AVS.\",\"version\":1},\"userdoc\":{\"events\":{\"OperatorDeregistered(address,bytes32)\":{\"notice\":\"Emits when an operator is deregistered\"},\"OperatorRegistered(address,bytes32)\":{\"notice\":\"Emits when an operator is registered\"},\"QuorumBlockNumberUpdated(uint8,uint256)\":{\"notice\":\"emitted when all the operators for a quorum are updated at once\"}},\"kind\":\"user\",\"methods\":{\"blsApkRegistry()\":{\"notice\":\"the BLS Aggregate Pubkey Registry contract that will keep track of operators' BLS aggregate pubkeys per quorum\"},\"ejectOperator(address,bytes)\":{\"notice\":\"Ejects the provided operator from the provided quorums from the AVS\"},\"getCurrentQuorumBitmap(bytes32)\":{\"notice\":\"Returns the current quorum bitmap for the given `operatorId`\"},\"getOperator(address)\":{\"notice\":\"Returns the operator struct for the given `operator`\"},\"getOperatorFromId(bytes32)\":{\"notice\":\"Returns the operator address for the given `operatorId`\"},\"getOperatorId(address)\":{\"notice\":\"Returns the operatorId for the given `operator`\"},\"getOperatorSetParams(uint8)\":{\"notice\":\"Returns the operator set params for the given `quorumNumber`\"},\"getOperatorStatus(address)\":{\"notice\":\"Returns the status for the given `operator`\"},\"getQuorumBitmapAtBlockNumberByIndex(bytes32,uint32,uint256)\":{\"notice\":\"Returns the quorum bitmap for the given `operatorId` at the given `blockNumber` via the `index`\"},\"getQuorumBitmapHistoryLength(bytes32)\":{\"notice\":\"Returns the length of the quorum bitmap history for the given `operatorId`\"},\"getQuorumBitmapIndicesAtBlockNumber(uint32,bytes32[])\":{\"notice\":\"Returns the indices of the quorumBitmaps for the provided `operatorIds` at the given `blockNumber`\"},\"getQuorumBitmapUpdateByIndex(bytes32,uint256)\":{\"notice\":\"Returns the `index`th entry in the operator with `operatorId`'s bitmap history\"},\"indexRegistry()\":{\"notice\":\"the index Registry contract that will keep track of operators' indexes\"},\"numRegistries()\":{\"notice\":\"Returns the number of registries\"},\"owner()\":{\"notice\":\"The owner of the registry coordinator\"},\"pubkeyRegistrationMessageHash(address)\":{\"notice\":\"Returns the message hash that an operator must sign to register their BLS public key.\"},\"quorumCount()\":{\"notice\":\"Returns the number of quorums the registry coordinator has created\"},\"quorumUpdateBlockNumber(uint8)\":{\"notice\":\"returns the blocknumber the quorum was last updated all at once for all operators\"},\"registries(uint256)\":{\"notice\":\"Returns the registry at the desired index\"},\"stakeRegistry()\":{\"notice\":\"the Stake registry contract that will keep track of operators' stakes\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":\"IRegistryCoordinator\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":@openzeppelin-upgrades/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":@openzeppelin/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/\"]},\"sources\":{\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"prevChurnApprover","type":"address","indexed":false},{"internalType":"address","name":"newChurnApprover","type":"address","indexed":false}],"type":"event","name":"ChurnApproverUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"prevEjector","type":"address","indexed":false},{"internalType":"address","name":"newEjector","type":"address","indexed":false}],"type":"event","name":"EjectorUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bytes32","name":"operatorId","type":"bytes32","indexed":true}],"type":"event","name":"OperatorDeregistered","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bytes32","name":"operatorId","type":"bytes32","indexed":true}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8","indexed":true},{"internalType":"struct IRegistryCoordinator.OperatorSetParam","name":"operatorSetParams","type":"tuple","components":[{"internalType":"uint32","name":"maxOperatorCount","type":"uint32"},{"internalType":"uint16","name":"kickBIPsOfOperatorStake","type":"uint16"},{"internalType":"uint16","name":"kickBIPsOfTotalStake","type":"uint16"}],"indexed":false}],"type":"event","name":"OperatorSetParamsUpdated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8","indexed":true},{"internalType":"uint256","name":"blocknumber","type":"uint256","indexed":false}],"type":"event","name":"QuorumBlockNumberUpdated","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"blsApkRegistry","outputs":[{"internalType":"contract IBLSApkRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes","name":"quorumNumbers","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"ejectOperator"},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getCurrentQuorumBitmap","outputs":[{"internalType":"uint192","name":"","type":"uint192"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperator","outputs":[{"internalType":"struct IRegistryCoordinator.OperatorInfo","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"enum IRegistryCoordinator.OperatorStatus","name":"status","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOperatorFromId","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"}],"stateMutability":"view","type":"function","name":"getOperatorSetParams","outputs":[{"internalType":"struct IRegistryCoordinator.OperatorSetParam","name":"","type":"tuple","components":[{"internalType":"uint32","name":"maxOperatorCount","type":"uint32"},{"internalType":"uint16","name":"kickBIPsOfOperatorStake","type":"uint16"},{"internalType":"uint16","name":"kickBIPsOfTotalStake","type":"uint16"}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorStatus","outputs":[{"internalType":"enum IRegistryCoordinator.OperatorStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"uint32","name":"blockNumber","type":"uint32"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getQuorumBitmapAtBlockNumberByIndex","outputs":[{"internalType":"uint192","name":"","type":"uint192"}]},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getQuorumBitmapHistoryLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"blockNumber","type":"uint32"},{"internalType":"bytes32[]","name":"operatorIds","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"getQuorumBitmapIndicesAtBlockNumber","outputs":[{"internalType":"uint32[]","name":"","type":"uint32[]"}]},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getQuorumBitmapUpdateByIndex","outputs":[{"internalType":"struct IRegistryCoordinator.QuorumBitmapUpdate","name":"","type":"tuple","components":[{"internalType":"uint32","name":"updateBlockNumber","type":"uint32"},{"internalType":"uint32","name":"nextUpdateBlockNumber","type":"uint32"},{"internalType":"uint192","name":"quorumBitmap","type":"uint192"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"indexRegistry","outputs":[{"internalType":"contract IIndexRegistry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"numRegistries","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"pubkeyRegistrationMessageHash","outputs":[{"internalType":"struct BN254.G1Point","name":"","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quorumCount","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"}],"stateMutability":"view","type":"function","name":"quorumUpdateBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"registries","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"stakeRegistry","outputs":[{"internalType":"contract IStakeRegistry","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"ejectOperator(address,bytes)":{"params":{"operator":"is the operator to eject","quorumNumbers":"are the quorum numbers to eject the operator from"}},"getQuorumBitmapAtBlockNumberByIndex(bytes32,uint32,uint256)":{"details":"reverts if `index` is incorrect "},"pubkeyRegistrationMessageHash(address)":{"params":{"operator":"is the address of the operator registering their BLS public key"}}},"version":1},"userdoc":{"kind":"user","methods":{"blsApkRegistry()":{"notice":"the BLS Aggregate Pubkey Registry contract that will keep track of operators' BLS aggregate pubkeys per quorum"},"ejectOperator(address,bytes)":{"notice":"Ejects the provided operator from the provided quorums from the AVS"},"getCurrentQuorumBitmap(bytes32)":{"notice":"Returns the current quorum bitmap for the given `operatorId`"},"getOperator(address)":{"notice":"Returns the operator struct for the given `operator`"},"getOperatorFromId(bytes32)":{"notice":"Returns the operator address for the given `operatorId`"},"getOperatorId(address)":{"notice":"Returns the operatorId for the given `operator`"},"getOperatorSetParams(uint8)":{"notice":"Returns the operator set params for the given `quorumNumber`"},"getOperatorStatus(address)":{"notice":"Returns the status for the given `operator`"},"getQuorumBitmapAtBlockNumberByIndex(bytes32,uint32,uint256)":{"notice":"Returns the quorum bitmap for the given `operatorId` at the given `blockNumber` via the `index`"},"getQuorumBitmapHistoryLength(bytes32)":{"notice":"Returns the length of the quorum bitmap history for the given `operatorId`"},"getQuorumBitmapIndicesAtBlockNumber(uint32,bytes32[])":{"notice":"Returns the indices of the quorumBitmaps for the provided `operatorIds` at the given `blockNumber`"},"getQuorumBitmapUpdateByIndex(bytes32,uint256)":{"notice":"Returns the `index`th entry in the operator with `operatorId`'s bitmap history"},"indexRegistry()":{"notice":"the index Registry contract that will keep track of operators' indexes"},"numRegistries()":{"notice":"Returns the number of registries"},"owner()":{"notice":"The owner of the registry coordinator"},"pubkeyRegistrationMessageHash(address)":{"notice":"Returns the message hash that an operator must sign to register their BLS public key."},"quorumCount()":{"notice":"Returns the number of quorums the registry coordinator has created"},"quorumUpdateBlockNumber(uint8)":{"notice":"returns the blocknumber the quorum was last updated all at once for all operators"},"registries(uint256)":{"notice":"Returns the registry at the desired index"},"stakeRegistry()":{"notice":"the Stake registry contract that will keep track of operators' stakes"}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","@openzeppelin-upgrades/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","@openzeppelin/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/","ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/","eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/","openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":"IRegistryCoordinator"},"evmVersion":"london","libraries":{}},"sources":{"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"}},"version":1},"id":130} \ No newline at end of file diff --git a/telemetry_api/priv/abi/IStakeRegistry.json b/telemetry_api/priv/abi/IStakeRegistry.json new file mode 100644 index 000000000..da360b509 --- /dev/null +++ b/telemetry_api/priv/abi/IStakeRegistry.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"WEIGHTING_DIVISOR","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"addStrategies","inputs":[{"name":"quorumNumber","type":"uint8","internalType":"uint8"},{"name":"strategyParams","type":"tuple[]","internalType":"struct IStakeRegistry.StrategyParams[]","components":[{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"multiplier","type":"uint96","internalType":"uint96"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IDelegationManager"}],"stateMutability":"view"},{"type":"function","name":"deregisterOperator","inputs":[{"name":"operatorId","type":"bytes32","internalType":"bytes32"},{"name":"quorumNumbers","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCurrentStake","inputs":[{"name":"operatorId","type":"bytes32","internalType":"bytes32"},{"name":"quorumNumber","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint96","internalType":"uint96"}],"stateMutability":"view"},{"type":"function","name":"getCurrentTotalStake","inputs":[{"name":"quorumNumber","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint96","internalType":"uint96"}],"stateMutability":"view"},{"type":"function","name":"getLatestStakeUpdate","inputs":[{"name":"operatorId","type":"bytes32","internalType":"bytes32"},{"name":"quorumNumber","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IStakeRegistry.StakeUpdate","components":[{"name":"updateBlockNumber","type":"uint32","internalType":"uint32"},{"name":"nextUpdateBlockNumber","type":"uint32","internalType":"uint32"},{"name":"stake","type":"uint96","internalType":"uint96"}]}],"stateMutability":"view"},{"type":"function","name":"getStakeAtBlockNumber","inputs":[{"name":"operatorId","type":"bytes32","internalType":"bytes32"},{"name":"quorumNumber","type":"uint8","internalType":"uint8"},{"name":"blockNumber","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint96","internalType":"uint96"}],"stateMutability":"view"},{"type":"function","name":"getStakeAtBlockNumberAndIndex","inputs":[{"name":"quorumNumber","type":"uint8","internalType":"uint8"},{"name":"blockNumber","type":"uint32","internalType":"uint32"},{"name":"operatorId","type":"bytes32","internalType":"bytes32"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint96","internalType":"uint96"}],"stateMutability":"view"},{"type":"function","name":"getStakeHistory","inputs":[{"name":"operatorId","type":"bytes32","internalType":"bytes32"},{"name":"quorumNumber","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IStakeRegistry.StakeUpdate[]","components":[{"name":"updateBlockNumber","type":"uint32","internalType":"uint32"},{"name":"nextUpdateBlockNumber","type":"uint32","internalType":"uint32"},{"name":"stake","type":"uint96","internalType":"uint96"}]}],"stateMutability":"view"},{"type":"function","name":"getStakeUpdateAtIndex","inputs":[{"name":"quorumNumber","type":"uint8","internalType":"uint8"},{"name":"operatorId","type":"bytes32","internalType":"bytes32"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IStakeRegistry.StakeUpdate","components":[{"name":"updateBlockNumber","type":"uint32","internalType":"uint32"},{"name":"nextUpdateBlockNumber","type":"uint32","internalType":"uint32"},{"name":"stake","type":"uint96","internalType":"uint96"}]}],"stateMutability":"view"},{"type":"function","name":"getStakeUpdateIndexAtBlockNumber","inputs":[{"name":"operatorId","type":"bytes32","internalType":"bytes32"},{"name":"quorumNumber","type":"uint8","internalType":"uint8"},{"name":"blockNumber","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"getTotalStakeAtBlockNumberFromIndex","inputs":[{"name":"quorumNumber","type":"uint8","internalType":"uint8"},{"name":"blockNumber","type":"uint32","internalType":"uint32"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint96","internalType":"uint96"}],"stateMutability":"view"},{"type":"function","name":"getTotalStakeHistoryLength","inputs":[{"name":"quorumNumber","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalStakeIndicesAtBlockNumber","inputs":[{"name":"blockNumber","type":"uint32","internalType":"uint32"},{"name":"quorumNumbers","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint32[]","internalType":"uint32[]"}],"stateMutability":"view"},{"type":"function","name":"getTotalStakeUpdateAtIndex","inputs":[{"name":"quorumNumber","type":"uint8","internalType":"uint8"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IStakeRegistry.StakeUpdate","components":[{"name":"updateBlockNumber","type":"uint32","internalType":"uint32"},{"name":"nextUpdateBlockNumber","type":"uint32","internalType":"uint32"},{"name":"stake","type":"uint96","internalType":"uint96"}]}],"stateMutability":"view"},{"type":"function","name":"initializeQuorum","inputs":[{"name":"quorumNumber","type":"uint8","internalType":"uint8"},{"name":"minimumStake","type":"uint96","internalType":"uint96"},{"name":"strategyParams","type":"tuple[]","internalType":"struct IStakeRegistry.StrategyParams[]","components":[{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"multiplier","type":"uint96","internalType":"uint96"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"minimumStakeForQuorum","inputs":[{"name":"quorumNumber","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint96","internalType":"uint96"}],"stateMutability":"view"},{"type":"function","name":"modifyStrategyParams","inputs":[{"name":"quorumNumber","type":"uint8","internalType":"uint8"},{"name":"strategyIndices","type":"uint256[]","internalType":"uint256[]"},{"name":"newMultipliers","type":"uint96[]","internalType":"uint96[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerOperator","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"operatorId","type":"bytes32","internalType":"bytes32"},{"name":"quorumNumbers","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint96[]","internalType":"uint96[]"},{"name":"","type":"uint96[]","internalType":"uint96[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"registryCoordinator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeStrategies","inputs":[{"name":"quorumNumber","type":"uint8","internalType":"uint8"},{"name":"indicesToRemove","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"strategyParamsByIndex","inputs":[{"name":"quorumNumber","type":"uint8","internalType":"uint8"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IStakeRegistry.StrategyParams","components":[{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"multiplier","type":"uint96","internalType":"uint96"}]}],"stateMutability":"view"},{"type":"function","name":"strategyParamsLength","inputs":[{"name":"quorumNumber","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"updateOperatorStake","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"operatorId","type":"bytes32","internalType":"bytes32"},{"name":"quorumNumbers","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint192","internalType":"uint192"}],"stateMutability":"nonpayable"},{"type":"function","name":"weightOfOperatorForQuorum","inputs":[{"name":"quorumNumber","type":"uint8","internalType":"uint8"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint96","internalType":"uint96"}],"stateMutability":"view"},{"type":"event","name":"MinimumStakeForQuorumUpdated","inputs":[{"name":"quorumNumber","type":"uint8","indexed":true,"internalType":"uint8"},{"name":"minimumStake","type":"uint96","indexed":false,"internalType":"uint96"}],"anonymous":false},{"type":"event","name":"OperatorStakeUpdate","inputs":[{"name":"operatorId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"quorumNumber","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"stake","type":"uint96","indexed":false,"internalType":"uint96"}],"anonymous":false},{"type":"event","name":"QuorumCreated","inputs":[{"name":"quorumNumber","type":"uint8","indexed":true,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"StrategyAddedToQuorum","inputs":[{"name":"quorumNumber","type":"uint8","indexed":true,"internalType":"uint8"},{"name":"strategy","type":"address","indexed":false,"internalType":"contract IStrategy"}],"anonymous":false},{"type":"event","name":"StrategyMultiplierUpdated","inputs":[{"name":"quorumNumber","type":"uint8","indexed":true,"internalType":"uint8"},{"name":"strategy","type":"address","indexed":false,"internalType":"contract IStrategy"},{"name":"multiplier","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"StrategyRemovedFromQuorum","inputs":[{"name":"quorumNumber","type":"uint8","indexed":true,"internalType":"uint8"},{"name":"strategy","type":"address","indexed":false,"internalType":"contract IStrategy"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"WEIGHTING_DIVISOR()":"5e5a6775","addStrategies(uint8,(address,uint96)[])":"c601527d","delegation()":"df5cf723","deregisterOperator(bytes32,bytes)":"bd29b8cd","getCurrentStake(bytes32,uint8)":"5401ed27","getCurrentTotalStake(uint8)":"d5eccc05","getLatestStakeUpdate(bytes32,uint8)":"f851e198","getStakeAtBlockNumber(bytes32,uint8,uint32)":"fa28c627","getStakeAtBlockNumberAndIndex(uint8,uint32,bytes32,uint256)":"f2be94ae","getStakeHistory(bytes32,uint8)":"2cd95940","getStakeUpdateAtIndex(uint8,bytes32,uint256)":"ac6bfb03","getStakeUpdateIndexAtBlockNumber(bytes32,uint8,uint32)":"dd9846b9","getTotalStakeAtBlockNumberFromIndex(uint8,uint32,uint256)":"c8294c56","getTotalStakeHistoryLength(uint8)":"0491b41c","getTotalStakeIndicesAtBlockNumber(uint32,bytes)":"81c07502","getTotalStakeUpdateAtIndex(uint8,uint256)":"b6904b78","initializeQuorum(uint8,uint96,(address,uint96)[])":"ff694a77","minimumStakeForQuorum(uint8)":"c46778a5","modifyStrategyParams(uint8,uint256[],uint96[])":"20b66298","registerOperator(address,bytes32,bytes)":"25504777","registryCoordinator()":"6d14a987","removeStrategies(uint8,uint256[])":"5f1f2d77","strategyParamsByIndex(uint8,uint256)":"adc804da","strategyParamsLength(uint8)":"3ca5a5f5","updateOperatorStake(address,bytes32,bytes)":"66acfefe","weightOfOperatorForQuorum(uint8,address)":"1f9b74e0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"minimumStake\",\"type\":\"uint96\"}],\"name\":\"MinimumStakeForQuorumUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"name\":\"OperatorStakeUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"QuorumCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyAddedToQuorum\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"multiplier\",\"type\":\"uint256\"}],\"name\":\"StrategyMultiplierUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyRemovedFromQuorum\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"WEIGHTING_DIVISOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"struct IStakeRegistry.StrategyParams[]\",\"name\":\"strategyParams\",\"type\":\"tuple[]\"}],\"name\":\"addStrategies\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegation\",\"outputs\":[{\"internalType\":\"contract IDelegationManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getCurrentStake\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getCurrentTotalStake\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getLatestStakeUpdate\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"internalType\":\"struct IStakeRegistry.StakeUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"}],\"name\":\"getStakeAtBlockNumber\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getStakeAtBlockNumberAndIndex\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getStakeHistory\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"internalType\":\"struct IStakeRegistry.StakeUpdate[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getStakeUpdateAtIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"internalType\":\"struct IStakeRegistry.StakeUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"}],\"name\":\"getStakeUpdateIndexAtBlockNumber\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getTotalStakeAtBlockNumberFromIndex\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getTotalStakeHistoryLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"getTotalStakeIndicesAtBlockNumber\",\"outputs\":[{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getTotalStakeUpdateAtIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"internalType\":\"struct IStakeRegistry.StakeUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint96\",\"name\":\"minimumStake\",\"type\":\"uint96\"},{\"components\":[{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"struct IStakeRegistry.StrategyParams[]\",\"name\":\"strategyParams\",\"type\":\"tuple[]\"}],\"name\":\"initializeQuorum\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"minimumStakeForQuorum\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"strategyIndices\",\"type\":\"uint256[]\"},{\"internalType\":\"uint96[]\",\"name\":\"newMultipliers\",\"type\":\"uint96[]\"}],\"name\":\"modifyStrategyParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"registerOperator\",\"outputs\":[{\"internalType\":\"uint96[]\",\"name\":\"\",\"type\":\"uint96[]\"},{\"internalType\":\"uint96[]\",\"name\":\"\",\"type\":\"uint96[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryCoordinator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"indicesToRemove\",\"type\":\"uint256[]\"}],\"name\":\"removeStrategies\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"strategyParamsByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"struct IStakeRegistry.StrategyParams\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"strategyParamsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"updateOperatorStake\",\"outputs\":[{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"weightOfOperatorForQuorum\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Layr Labs, Inc.\",\"kind\":\"dev\",\"methods\":{\"deregisterOperator(bytes32,bytes)\":{\"details\":\"access restricted to the RegistryCoordinatorPreconditions (these are assumed, not validated in this contract): 1) `quorumNumbers` has no duplicates 2) `quorumNumbers.length` != 0 3) `quorumNumbers` is ordered in ascending order 4) the operator is not already deregistered 5) `quorumNumbers` is a subset of the quorumNumbers that the operator is registered for\",\"params\":{\"operatorId\":\"The id of the operator to deregister.\",\"quorumNumbers\":\"The quorum numbers the operator is deregistering from, where each byte is an 8 bit integer quorumNumber.\"}},\"getCurrentStake(bytes32,uint8)\":{\"details\":\"Function returns weight of **0** in the event that the operator has no stake history\"},\"getCurrentTotalStake(uint8)\":{\"details\":\"Will revert if `_totalStakeHistory[quorumNumber]` is empty.\"},\"getLatestStakeUpdate(bytes32,uint8)\":{\"details\":\"Function returns an StakeUpdate struct with **every entry equal to 0** in the event that the operator has no stake history\"},\"getStakeAtBlockNumberAndIndex(uint8,uint32,bytes32,uint256)\":{\"details\":\"Function will revert if `index` is out-of-bounds.used the BLSSignatureChecker to get past stakes of signing operators\",\"params\":{\"blockNumber\":\"Block number to make sure the stake is from.\",\"index\":\"Array index for lookup, within the dynamic array `operatorIdToStakeHistory[operatorId][quorumNumber]`.\",\"operatorId\":\"The id of the operator of interest.\",\"quorumNumber\":\"The quorum number to get the stake for.\"}},\"getStakeHistory(bytes32,uint8)\":{\"params\":{\"operatorId\":\"The id of the operator of interest.\",\"quorumNumber\":\"The quorum number to get the stake for.\"}},\"getStakeUpdateAtIndex(uint8,bytes32,uint256)\":{\"details\":\"Function will revert if `index` is out-of-bounds.\",\"params\":{\"index\":\"Array index for lookup, within the dynamic array `operatorIdToStakeHistory[operatorId][quorumNumber]`.\",\"operatorId\":\"The id of the operator of interest.\",\"quorumNumber\":\"The quorum number to get the stake for.\"}},\"getTotalStakeAtBlockNumberFromIndex(uint8,uint32,uint256)\":{\"details\":\"Function will revert if `index` is out-of-bounds.used the BLSSignatureChecker to get past stakes of signing operators\",\"params\":{\"blockNumber\":\"Block number to make sure the stake is from.\",\"index\":\"Array index for lookup, within the dynamic array `totalStakeHistory[quorumNumber]`.\",\"quorumNumber\":\"The quorum number to get the stake for.\"}},\"getTotalStakeUpdateAtIndex(uint8,uint256)\":{\"params\":{\"index\":\"Array index for lookup, within the dynamic array `totalStakeHistory[quorumNumber]`.\",\"quorumNumber\":\"The quorum number to get the stake for.\"}},\"modifyStrategyParams(uint8,uint256[],uint96[])\":{\"params\":{\"newMultipliers\":\"are the new multipliers for the strategies\",\"quorumNumber\":\"is the quorum number to change the strategy for\",\"strategyIndices\":\"are the indices of the strategies to change\"}},\"registerOperator(address,bytes32,bytes)\":{\"details\":\"access restricted to the RegistryCoordinatorPreconditions (these are assumed, not validated in this contract): 1) `quorumNumbers` has no duplicates 2) `quorumNumbers.length` != 0 3) `quorumNumbers` is ordered in ascending order 4) the operator is not already registered\",\"params\":{\"operator\":\"The address of the operator to register.\",\"operatorId\":\"The id of the operator to register.\",\"quorumNumbers\":\"The quorum numbers the operator is registering for, where each byte is an 8 bit integer quorumNumber.\"},\"returns\":{\"_0\":\"The operator's current stake for each quorum, and the total stake for each quorum\"}},\"removeStrategies(uint8,uint256[])\":{\"details\":\"higher indices should be *first* in the list of @param indicesToRemove, since otherwise the removal of lower index entries will cause a shift in the indices of the other strategiesToRemove\",\"params\":{\"quorumNumber\":\".\"}},\"updateOperatorStake(address,bytes32,bytes)\":{\"returns\":{\"_0\":\"A bitmap of quorums where the operator no longer meets the minimum stake and should be deregistered.\"}},\"weightOfOperatorForQuorum(uint8,address)\":{\"details\":\"reverts in the case that `quorumNumber` is greater than or equal to `quorumCount`\"}},\"title\":\"Interface for a `Registry` that keeps track of stakes of operators for up to 256 quorums.\",\"version\":1},\"userdoc\":{\"events\":{\"MinimumStakeForQuorumUpdated(uint8,uint96)\":{\"notice\":\"emitted when the minimum stake for a quorum is updated\"},\"OperatorStakeUpdate(bytes32,uint8,uint96)\":{\"notice\":\"emitted whenever the stake of `operator` is updated\"},\"QuorumCreated(uint8)\":{\"notice\":\"emitted when a new quorum is created\"},\"StrategyAddedToQuorum(uint8,address)\":{\"notice\":\"emitted when `strategy` has been added to the array at `strategyParams[quorumNumber]`\"},\"StrategyMultiplierUpdated(uint8,address,uint256)\":{\"notice\":\"emitted when `strategy` has its `multiplier` updated in the array at `strategyParams[quorumNumber]`\"},\"StrategyRemovedFromQuorum(uint8,address)\":{\"notice\":\"emitted when `strategy` has removed from the array at `strategyParams[quorumNumber]`\"}},\"kind\":\"user\",\"methods\":{\"WEIGHTING_DIVISOR()\":{\"notice\":\"Constant used as a divisor in calculating weights.\"},\"addStrategies(uint8,(address,uint96)[])\":{\"notice\":\"Adds new strategies and the associated multipliers to the @param quorumNumber.\"},\"delegation()\":{\"notice\":\"Returns the EigenLayer delegation manager contract.\"},\"deregisterOperator(bytes32,bytes)\":{\"notice\":\"Deregisters the operator with `operatorId` for the specified `quorumNumbers`.\"},\"getCurrentStake(bytes32,uint8)\":{\"notice\":\"Returns the most recent stake weight for the `operatorId` for quorum `quorumNumber`\"},\"getCurrentTotalStake(uint8)\":{\"notice\":\"Returns the stake weight from the latest entry in `_totalStakeHistory` for quorum `quorumNumber`.\"},\"getLatestStakeUpdate(bytes32,uint8)\":{\"notice\":\"Returns the most recent stake weight for the `operatorId` for a certain quorum\"},\"getStakeAtBlockNumber(bytes32,uint8,uint32)\":{\"notice\":\"Returns the stake of the operator for the provided `quorumNumber` at the given `blockNumber`\"},\"getStakeAtBlockNumberAndIndex(uint8,uint32,bytes32,uint256)\":{\"notice\":\"Returns the stake weight corresponding to `operatorId` for quorum `quorumNumber`, at the `index`-th entry in the `operatorIdToStakeHistory[operatorId][quorumNumber]` array if the entry corresponds to the operator's stake at `blockNumber`. Reverts otherwise.\"},\"getStakeHistory(bytes32,uint8)\":{\"notice\":\"Returns the entire `operatorIdToStakeHistory[operatorId][quorumNumber]` array.\"},\"getStakeUpdateAtIndex(uint8,bytes32,uint256)\":{\"notice\":\"Returns the `index`-th entry in the `operatorIdToStakeHistory[operatorId][quorumNumber]` array.\"},\"getStakeUpdateIndexAtBlockNumber(bytes32,uint8,uint32)\":{\"notice\":\"Returns the indices of the operator stakes for the provided `quorumNumber` at the given `blockNumber`\"},\"getTotalStakeAtBlockNumberFromIndex(uint8,uint32,uint256)\":{\"notice\":\"Returns the total stake weight for quorum `quorumNumber`, at the `index`-th entry in the `totalStakeHistory[quorumNumber]` array if the entry corresponds to the total stake at `blockNumber`. Reverts otherwise.\"},\"getTotalStakeIndicesAtBlockNumber(uint32,bytes)\":{\"notice\":\"Returns the indices of the total stakes for the provided `quorumNumbers` at the given `blockNumber`\"},\"getTotalStakeUpdateAtIndex(uint8,uint256)\":{\"notice\":\"Returns the `index`-th entry in the dynamic array of total stake, `totalStakeHistory` for quorum `quorumNumber`.\"},\"initializeQuorum(uint8,uint96,(address,uint96)[])\":{\"notice\":\"Initialize a new quorum created by the registry coordinator by setting strategies, weights, and minimum stake\"},\"minimumStakeForQuorum(uint8)\":{\"notice\":\"In order to register for a quorum i, an operator must have at least `minimumStakeForQuorum[i]`\"},\"modifyStrategyParams(uint8,uint256[],uint96[])\":{\"notice\":\"This function is used for modifying the weights of strategies that are already in the mapping strategyParams for a specific\"},\"registerOperator(address,bytes32,bytes)\":{\"notice\":\"Registers the `operator` with `operatorId` for the specified `quorumNumbers`.\"},\"removeStrategies(uint8,uint256[])\":{\"notice\":\"This function is used for removing strategies and their associated weights from the\"},\"strategyParamsByIndex(uint8,uint256)\":{\"notice\":\"Returns the strategy and weight multiplier for the `index`'th strategy in the quorum `quorumNumber`\"},\"strategyParamsLength(uint8)\":{\"notice\":\"Returns the length of the dynamic array stored in `strategyParams[quorumNumber]`.\"},\"updateOperatorStake(address,bytes32,bytes)\":{\"notice\":\"Called by the registry coordinator to update an operator's stake for one or more quorums. If the operator no longer has the minimum stake required for a quorum, they are added to the\"},\"weightOfOperatorForQuorum(uint8,address)\":{\"notice\":\"This function computes the total weight of the @param operator in the quorum @param quorumNumber.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":\"IStakeRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":@openzeppelin-upgrades/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/\"]},\"sources\":{\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8","indexed":true},{"internalType":"uint96","name":"minimumStake","type":"uint96","indexed":false}],"type":"event","name":"MinimumStakeForQuorumUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32","indexed":true},{"internalType":"uint8","name":"quorumNumber","type":"uint8","indexed":false},{"internalType":"uint96","name":"stake","type":"uint96","indexed":false}],"type":"event","name":"OperatorStakeUpdate","anonymous":false},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8","indexed":true}],"type":"event","name":"QuorumCreated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8","indexed":true},{"internalType":"contract IStrategy","name":"strategy","type":"address","indexed":false}],"type":"event","name":"StrategyAddedToQuorum","anonymous":false},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8","indexed":true},{"internalType":"contract IStrategy","name":"strategy","type":"address","indexed":false},{"internalType":"uint256","name":"multiplier","type":"uint256","indexed":false}],"type":"event","name":"StrategyMultiplierUpdated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8","indexed":true},{"internalType":"contract IStrategy","name":"strategy","type":"address","indexed":false}],"type":"event","name":"StrategyRemovedFromQuorum","anonymous":false},{"inputs":[],"stateMutability":"pure","type":"function","name":"WEIGHTING_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"},{"internalType":"struct IStakeRegistry.StrategyParams[]","name":"strategyParams","type":"tuple[]","components":[{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"uint96","name":"multiplier","type":"uint96"}]}],"stateMutability":"nonpayable","type":"function","name":"addStrategies"},{"inputs":[],"stateMutability":"view","type":"function","name":"delegation","outputs":[{"internalType":"contract IDelegationManager","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"bytes","name":"quorumNumbers","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"deregisterOperator"},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"uint8","name":"quorumNumber","type":"uint8"}],"stateMutability":"view","type":"function","name":"getCurrentStake","outputs":[{"internalType":"uint96","name":"","type":"uint96"}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"}],"stateMutability":"view","type":"function","name":"getCurrentTotalStake","outputs":[{"internalType":"uint96","name":"","type":"uint96"}]},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"uint8","name":"quorumNumber","type":"uint8"}],"stateMutability":"view","type":"function","name":"getLatestStakeUpdate","outputs":[{"internalType":"struct IStakeRegistry.StakeUpdate","name":"","type":"tuple","components":[{"internalType":"uint32","name":"updateBlockNumber","type":"uint32"},{"internalType":"uint32","name":"nextUpdateBlockNumber","type":"uint32"},{"internalType":"uint96","name":"stake","type":"uint96"}]}]},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"uint8","name":"quorumNumber","type":"uint8"},{"internalType":"uint32","name":"blockNumber","type":"uint32"}],"stateMutability":"view","type":"function","name":"getStakeAtBlockNumber","outputs":[{"internalType":"uint96","name":"","type":"uint96"}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"},{"internalType":"uint32","name":"blockNumber","type":"uint32"},{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStakeAtBlockNumberAndIndex","outputs":[{"internalType":"uint96","name":"","type":"uint96"}]},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"uint8","name":"quorumNumber","type":"uint8"}],"stateMutability":"view","type":"function","name":"getStakeHistory","outputs":[{"internalType":"struct IStakeRegistry.StakeUpdate[]","name":"","type":"tuple[]","components":[{"internalType":"uint32","name":"updateBlockNumber","type":"uint32"},{"internalType":"uint32","name":"nextUpdateBlockNumber","type":"uint32"},{"internalType":"uint96","name":"stake","type":"uint96"}]}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"},{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStakeUpdateAtIndex","outputs":[{"internalType":"struct IStakeRegistry.StakeUpdate","name":"","type":"tuple","components":[{"internalType":"uint32","name":"updateBlockNumber","type":"uint32"},{"internalType":"uint32","name":"nextUpdateBlockNumber","type":"uint32"},{"internalType":"uint96","name":"stake","type":"uint96"}]}]},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"uint8","name":"quorumNumber","type":"uint8"},{"internalType":"uint32","name":"blockNumber","type":"uint32"}],"stateMutability":"view","type":"function","name":"getStakeUpdateIndexAtBlockNumber","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"},{"internalType":"uint32","name":"blockNumber","type":"uint32"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getTotalStakeAtBlockNumberFromIndex","outputs":[{"internalType":"uint96","name":"","type":"uint96"}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"}],"stateMutability":"view","type":"function","name":"getTotalStakeHistoryLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"blockNumber","type":"uint32"},{"internalType":"bytes","name":"quorumNumbers","type":"bytes"}],"stateMutability":"view","type":"function","name":"getTotalStakeIndicesAtBlockNumber","outputs":[{"internalType":"uint32[]","name":"","type":"uint32[]"}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getTotalStakeUpdateAtIndex","outputs":[{"internalType":"struct IStakeRegistry.StakeUpdate","name":"","type":"tuple","components":[{"internalType":"uint32","name":"updateBlockNumber","type":"uint32"},{"internalType":"uint32","name":"nextUpdateBlockNumber","type":"uint32"},{"internalType":"uint96","name":"stake","type":"uint96"}]}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"},{"internalType":"uint96","name":"minimumStake","type":"uint96"},{"internalType":"struct IStakeRegistry.StrategyParams[]","name":"strategyParams","type":"tuple[]","components":[{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"uint96","name":"multiplier","type":"uint96"}]}],"stateMutability":"nonpayable","type":"function","name":"initializeQuorum"},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"}],"stateMutability":"view","type":"function","name":"minimumStakeForQuorum","outputs":[{"internalType":"uint96","name":"","type":"uint96"}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"},{"internalType":"uint256[]","name":"strategyIndices","type":"uint256[]"},{"internalType":"uint96[]","name":"newMultipliers","type":"uint96[]"}],"stateMutability":"nonpayable","type":"function","name":"modifyStrategyParams"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"bytes","name":"quorumNumbers","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerOperator","outputs":[{"internalType":"uint96[]","name":"","type":"uint96[]"},{"internalType":"uint96[]","name":"","type":"uint96[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registryCoordinator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"},{"internalType":"uint256[]","name":"indicesToRemove","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"removeStrategies"},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"strategyParamsByIndex","outputs":[{"internalType":"struct IStakeRegistry.StrategyParams","name":"","type":"tuple","components":[{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"uint96","name":"multiplier","type":"uint96"}]}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"}],"stateMutability":"view","type":"function","name":"strategyParamsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"bytes","name":"quorumNumbers","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateOperatorStake","outputs":[{"internalType":"uint192","name":"","type":"uint192"}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"weightOfOperatorForQuorum","outputs":[{"internalType":"uint96","name":"","type":"uint96"}]}],"devdoc":{"kind":"dev","methods":{"deregisterOperator(bytes32,bytes)":{"details":"access restricted to the RegistryCoordinatorPreconditions (these are assumed, not validated in this contract): 1) `quorumNumbers` has no duplicates 2) `quorumNumbers.length` != 0 3) `quorumNumbers` is ordered in ascending order 4) the operator is not already deregistered 5) `quorumNumbers` is a subset of the quorumNumbers that the operator is registered for","params":{"operatorId":"The id of the operator to deregister.","quorumNumbers":"The quorum numbers the operator is deregistering from, where each byte is an 8 bit integer quorumNumber."}},"getCurrentStake(bytes32,uint8)":{"details":"Function returns weight of **0** in the event that the operator has no stake history"},"getCurrentTotalStake(uint8)":{"details":"Will revert if `_totalStakeHistory[quorumNumber]` is empty."},"getLatestStakeUpdate(bytes32,uint8)":{"details":"Function returns an StakeUpdate struct with **every entry equal to 0** in the event that the operator has no stake history"},"getStakeAtBlockNumberAndIndex(uint8,uint32,bytes32,uint256)":{"details":"Function will revert if `index` is out-of-bounds.used the BLSSignatureChecker to get past stakes of signing operators","params":{"blockNumber":"Block number to make sure the stake is from.","index":"Array index for lookup, within the dynamic array `operatorIdToStakeHistory[operatorId][quorumNumber]`.","operatorId":"The id of the operator of interest.","quorumNumber":"The quorum number to get the stake for."}},"getStakeHistory(bytes32,uint8)":{"params":{"operatorId":"The id of the operator of interest.","quorumNumber":"The quorum number to get the stake for."}},"getStakeUpdateAtIndex(uint8,bytes32,uint256)":{"details":"Function will revert if `index` is out-of-bounds.","params":{"index":"Array index for lookup, within the dynamic array `operatorIdToStakeHistory[operatorId][quorumNumber]`.","operatorId":"The id of the operator of interest.","quorumNumber":"The quorum number to get the stake for."}},"getTotalStakeAtBlockNumberFromIndex(uint8,uint32,uint256)":{"details":"Function will revert if `index` is out-of-bounds.used the BLSSignatureChecker to get past stakes of signing operators","params":{"blockNumber":"Block number to make sure the stake is from.","index":"Array index for lookup, within the dynamic array `totalStakeHistory[quorumNumber]`.","quorumNumber":"The quorum number to get the stake for."}},"getTotalStakeUpdateAtIndex(uint8,uint256)":{"params":{"index":"Array index for lookup, within the dynamic array `totalStakeHistory[quorumNumber]`.","quorumNumber":"The quorum number to get the stake for."}},"modifyStrategyParams(uint8,uint256[],uint96[])":{"params":{"newMultipliers":"are the new multipliers for the strategies","quorumNumber":"is the quorum number to change the strategy for","strategyIndices":"are the indices of the strategies to change"}},"registerOperator(address,bytes32,bytes)":{"details":"access restricted to the RegistryCoordinatorPreconditions (these are assumed, not validated in this contract): 1) `quorumNumbers` has no duplicates 2) `quorumNumbers.length` != 0 3) `quorumNumbers` is ordered in ascending order 4) the operator is not already registered","params":{"operator":"The address of the operator to register.","operatorId":"The id of the operator to register.","quorumNumbers":"The quorum numbers the operator is registering for, where each byte is an 8 bit integer quorumNumber."},"returns":{"_0":"The operator's current stake for each quorum, and the total stake for each quorum"}},"removeStrategies(uint8,uint256[])":{"details":"higher indices should be *first* in the list of @param indicesToRemove, since otherwise the removal of lower index entries will cause a shift in the indices of the other strategiesToRemove","params":{"quorumNumber":"."}},"updateOperatorStake(address,bytes32,bytes)":{"returns":{"_0":"A bitmap of quorums where the operator no longer meets the minimum stake and should be deregistered."}},"weightOfOperatorForQuorum(uint8,address)":{"details":"reverts in the case that `quorumNumber` is greater than or equal to `quorumCount`"}},"version":1},"userdoc":{"kind":"user","methods":{"WEIGHTING_DIVISOR()":{"notice":"Constant used as a divisor in calculating weights."},"addStrategies(uint8,(address,uint96)[])":{"notice":"Adds new strategies and the associated multipliers to the @param quorumNumber."},"delegation()":{"notice":"Returns the EigenLayer delegation manager contract."},"deregisterOperator(bytes32,bytes)":{"notice":"Deregisters the operator with `operatorId` for the specified `quorumNumbers`."},"getCurrentStake(bytes32,uint8)":{"notice":"Returns the most recent stake weight for the `operatorId` for quorum `quorumNumber`"},"getCurrentTotalStake(uint8)":{"notice":"Returns the stake weight from the latest entry in `_totalStakeHistory` for quorum `quorumNumber`."},"getLatestStakeUpdate(bytes32,uint8)":{"notice":"Returns the most recent stake weight for the `operatorId` for a certain quorum"},"getStakeAtBlockNumber(bytes32,uint8,uint32)":{"notice":"Returns the stake of the operator for the provided `quorumNumber` at the given `blockNumber`"},"getStakeAtBlockNumberAndIndex(uint8,uint32,bytes32,uint256)":{"notice":"Returns the stake weight corresponding to `operatorId` for quorum `quorumNumber`, at the `index`-th entry in the `operatorIdToStakeHistory[operatorId][quorumNumber]` array if the entry corresponds to the operator's stake at `blockNumber`. Reverts otherwise."},"getStakeHistory(bytes32,uint8)":{"notice":"Returns the entire `operatorIdToStakeHistory[operatorId][quorumNumber]` array."},"getStakeUpdateAtIndex(uint8,bytes32,uint256)":{"notice":"Returns the `index`-th entry in the `operatorIdToStakeHistory[operatorId][quorumNumber]` array."},"getStakeUpdateIndexAtBlockNumber(bytes32,uint8,uint32)":{"notice":"Returns the indices of the operator stakes for the provided `quorumNumber` at the given `blockNumber`"},"getTotalStakeAtBlockNumberFromIndex(uint8,uint32,uint256)":{"notice":"Returns the total stake weight for quorum `quorumNumber`, at the `index`-th entry in the `totalStakeHistory[quorumNumber]` array if the entry corresponds to the total stake at `blockNumber`. Reverts otherwise."},"getTotalStakeIndicesAtBlockNumber(uint32,bytes)":{"notice":"Returns the indices of the total stakes for the provided `quorumNumbers` at the given `blockNumber`"},"getTotalStakeUpdateAtIndex(uint8,uint256)":{"notice":"Returns the `index`-th entry in the dynamic array of total stake, `totalStakeHistory` for quorum `quorumNumber`."},"initializeQuorum(uint8,uint96,(address,uint96)[])":{"notice":"Initialize a new quorum created by the registry coordinator by setting strategies, weights, and minimum stake"},"minimumStakeForQuorum(uint8)":{"notice":"In order to register for a quorum i, an operator must have at least `minimumStakeForQuorum[i]`"},"modifyStrategyParams(uint8,uint256[],uint96[])":{"notice":"This function is used for modifying the weights of strategies that are already in the mapping strategyParams for a specific"},"registerOperator(address,bytes32,bytes)":{"notice":"Registers the `operator` with `operatorId` for the specified `quorumNumbers`."},"removeStrategies(uint8,uint256[])":{"notice":"This function is used for removing strategies and their associated weights from the"},"strategyParamsByIndex(uint8,uint256)":{"notice":"Returns the strategy and weight multiplier for the `index`'th strategy in the quorum `quorumNumber`"},"strategyParamsLength(uint8)":{"notice":"Returns the length of the dynamic array stored in `strategyParams[quorumNumber]`."},"updateOperatorStake(address,bytes32,bytes)":{"notice":"Called by the registry coordinator to update an operator's stake for one or more quorums. If the operator no longer has the minimum stake required for a quorum, they are added to the"},"weightOfOperatorForQuorum(uint8,address)":{"notice":"This function computes the total weight of the @param operator in the quorum @param quorumNumber."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","@openzeppelin-upgrades/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/","ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/","eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":"IStakeRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"}},"version":1},"id":134} \ No newline at end of file diff --git a/telemetry_api/priv/abi/OperatorStateRetriever.json b/telemetry_api/priv/abi/OperatorStateRetriever.json new file mode 100644 index 000000000..97c87658a --- /dev/null +++ b/telemetry_api/priv/abi/OperatorStateRetriever.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"getBatchOperatorFromId","inputs":[{"name":"registryCoordinator","type":"address","internalType":"contract IRegistryCoordinator"},{"name":"operatorIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"operators","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getBatchOperatorId","inputs":[{"name":"registryCoordinator","type":"address","internalType":"contract IRegistryCoordinator"},{"name":"operators","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"operatorIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getCheckSignaturesIndices","inputs":[{"name":"registryCoordinator","type":"address","internalType":"contract IRegistryCoordinator"},{"name":"referenceBlockNumber","type":"uint32","internalType":"uint32"},{"name":"quorumNumbers","type":"bytes","internalType":"bytes"},{"name":"nonSignerOperatorIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"tuple","internalType":"struct OperatorStateRetriever.CheckSignaturesIndices","components":[{"name":"nonSignerQuorumBitmapIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"quorumApkIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"totalStakeIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"nonSignerStakeIndices","type":"uint32[][]","internalType":"uint32[][]"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorState","inputs":[{"name":"registryCoordinator","type":"address","internalType":"contract IRegistryCoordinator"},{"name":"quorumNumbers","type":"bytes","internalType":"bytes"},{"name":"blockNumber","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"tuple[][]","internalType":"struct OperatorStateRetriever.Operator[][]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"operatorId","type":"bytes32","internalType":"bytes32"},{"name":"stake","type":"uint96","internalType":"uint96"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorState","inputs":[{"name":"registryCoordinator","type":"address","internalType":"contract IRegistryCoordinator"},{"name":"operatorId","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"tuple[][]","internalType":"struct OperatorStateRetriever.Operator[][]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"operatorId","type":"bytes32","internalType":"bytes32"},{"name":"stake","type":"uint96","internalType":"uint96"}]}],"stateMutability":"view"},{"type":"function","name":"getQuorumBitmapsAtBlockNumber","inputs":[{"name":"registryCoordinator","type":"address","internalType":"contract IRegistryCoordinator"},{"name":"operatorIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"blockNumber","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50611dcb8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114ac565b60405180910390f35b6100a361009e3660046114e8565b610245565b6040516100879190611653565b6100c36100be3660046116c4565b6106c5565b6040516100879190611713565b6100e36100de3660046117aa565b6107d2565b60405161008791906118ab565b6101036100fe366004611963565b610eea565b60405161008791906119c6565b61012361011e3660046119fe565b6110a8565b604051610087929190611a35565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a56565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a6c565b82828151811061022b5761022b611a56565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a85565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a85565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a85565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a56565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611aa2565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a56565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a56565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a85565b6001600160a01b031681526020018383815181106105b6576105b6611a56565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a56565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b37565b6001600160601b031681525085858151811061068257610682611a56565b6020026020010151828151811061069b5761069b611a56565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a56565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a85565b8282815181106107b2576107b2611a56565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a85565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b60565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611ba7565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c64565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611ba7565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a56565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a56565b905060200201358e88600001518681518110610a9257610a92611a56565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c8d565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a56565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a56565b905060200201358d8d8860ff16818110610c2d57610c2d611a56565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611cb6565b85606001518560ff1681518110610cc057610cc0611a56565b60200260200101518481518110610cd957610cd9611a56565b63ffffffff9092166020928302919091019091015282610cf881611ce9565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a56565b60200260200101518181518110610d8957610d89611a56565b6020026020010151828281518110610da357610da3611a56565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a56565b602002602001018190525050508080610df390611d02565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a85565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d21565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611ba7565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d4b565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611ba7565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a56565b602002602001015187868581518110610ff257610ff2611a56565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c8d565b6001600160c01b031682828151811061108b5761108b611a56565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a56565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d4b565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611ba7565b60008151811061117657611176611a56565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c8d565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a56565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611ce9565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d6a565b909216918061132981611d7d565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b915060208301356001600160401b038111156113f157600080fd5b8301601f8101851361140257600080fd5b803561141561141082611395565b611365565b8082825260208201915060208360051b85010192508783111561143757600080fd5b6020840193505b8284101561146257833561145181611337565b82526020938401939091019061143e565b809450505050509250929050565b600081518084526020840193506020830160005b828110156114a2578151865260209586019590910190600101611484565b5093949350505050565b6020815260006114bf6020830184611470565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114e3816114c6565b919050565b6000806000606084860312156114fd57600080fd5b833561150881611337565b925060208401356001600160401b0381111561152357600080fd5b8401601f8101861361153457600080fd5b80356001600160401b0381111561154d5761154d61134f565b611560601f8201601f1916602001611365565b81815287602083850101111561157557600080fd5b8160208401602083013760006020838301015280945050505061159a604085016114d8565b90509250925092565b600082825180855260208501945060208160051b8301016020850160005b8381101561164757848303601f190188528151805180855260209182019185019060005b8181101561162e57835180516001600160a01b03168452602080820151818601526040918201516001600160601b031691850191909152909301926060909201916001016115e5565b50506020998a01999094509290920191506001016115c1565b50909695505050505050565b6020815260006114bf60208301846115a3565b600082601f83011261167757600080fd5b813561168561141082611395565b8082825260208201915060208360051b8601019250858311156116a757600080fd5b602085015b8381101561109e5780358352602092830192016116ac565b600080604083850312156116d757600080fd5b82356116e281611337565b915060208301356001600160401b038111156116fd57600080fd5b61170985828601611666565b9150509250929050565b602080825282518282018190526000918401906040840190835b818110156117545783516001600160a01b031683526020938401939092019160010161172d565b509095945050505050565b60008083601f84011261177157600080fd5b5081356001600160401b0381111561178857600080fd5b6020830191508360208260051b85010111156117a357600080fd5b9250929050565b600080600080600080608087890312156117c357600080fd5b86356117ce81611337565b955060208701356117de816114c6565b945060408701356001600160401b038111156117f957600080fd5b8701601f8101891361180a57600080fd5b80356001600160401b0381111561182057600080fd5b89602082840101111561183257600080fd5b6020919091019450925060608701356001600160401b0381111561185557600080fd5b61186189828a0161175f565b979a9699509497509295939492505050565b600081518084526020840193506020830160005b828110156114a257815163ffffffff16865260209586019590910190600101611887565b6020815260008251608060208401526118c760a0840182611873565b90506020840151601f198483030160408501526118e48282611873565b9150506040840151601f198483030160608501526119028282611873565b6060860151858203601f190160808701528051808352919350602090810192508084019190600582901b85010160005b828110156106b957601f1986830301845261194e828651611873565b60209586019594909401939150600101611932565b60008060006060848603121561197857600080fd5b833561198381611337565b925060208401356001600160401b0381111561199e57600080fd5b6119aa86828701611666565b92505060408401356119bb816114c6565b809150509250925092565b602080825282518282018190526000918401906040840190835b818110156117545783518352602093840193909201916001016119e0565b600080600060608486031215611a1357600080fd5b8335611a1e81611337565b92506020840135915060408401356119bb816114c6565b828152604060208201526000611a4e60408301846115a3565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7e57600080fd5b5051919050565b600060208284031215611a9757600080fd5b81516114bf81611337565b600060208284031215611ab457600080fd5b81516001600160401b03811115611aca57600080fd5b8201601f81018413611adb57600080fd5b8051611ae961141082611395565b8082825260208201915060208360051b850101925086831115611b0b57600080fd5b6020840193505b82841015611b2d578351825260209384019390910190611b12565b9695505050505050565b600060208284031215611b4957600080fd5b81516001600160601b03811681146114bf57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b8d57600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215611bb957600080fd5b81516001600160401b03811115611bcf57600080fd5b8201601f81018413611be057600080fd5b8051611bee61141082611395565b8082825260208201915060208360051b850101925086831115611c1057600080fd5b6020840193505b82841015611b2d578351611c2a816114c6565b825260209384019390910190611c17565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c84604083018486611c3b565b95945050505050565b600060208284031215611c9f57600080fd5b81516001600160c01b03811681146114bf57600080fd5b600060208284031215611cc857600080fd5b81516114bf816114c6565b634e487b7160e01b600052601160045260246000fd5b600060018201611cfb57611cfb611cd3565b5060010190565b600060ff821660ff8103611d1857611d18611cd3565b60010192915050565b604081526000611d35604083018587611c3b565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a4e6040830184611470565b8181038181111561133157611331611cd3565b600061ffff821661ffff8103611d1857611d18611cd356fea264697066735822122033585ad22b02fc74fbd447d232f18fbc94c4d2d5f8667d94aaa1ee5226d7192a64736f6c634300081b0033","sourceMap":"540:11298:117:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114ac565b60405180910390f35b6100a361009e3660046114e8565b610245565b6040516100879190611653565b6100c36100be3660046116c4565b6106c5565b6040516100879190611713565b6100e36100de3660046117aa565b6107d2565b60405161008791906118ab565b6101036100fe366004611963565b610eea565b60405161008791906119c6565b61012361011e3660046119fe565b6110a8565b604051610087929190611a35565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a56565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a6c565b82828151811061022b5761022b611a56565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a85565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a85565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a85565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a56565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611aa2565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a56565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a56565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a85565b6001600160a01b031681526020018383815181106105b6576105b6611a56565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a56565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b37565b6001600160601b031681525085858151811061068257610682611a56565b6020026020010151828151811061069b5761069b611a56565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a56565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a85565b8282815181106107b2576107b2611a56565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a85565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b60565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611ba7565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c64565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611ba7565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a56565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a56565b905060200201358e88600001518681518110610a9257610a92611a56565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c8d565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a56565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a56565b905060200201358d8d8860ff16818110610c2d57610c2d611a56565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611cb6565b85606001518560ff1681518110610cc057610cc0611a56565b60200260200101518481518110610cd957610cd9611a56565b63ffffffff9092166020928302919091019091015282610cf881611ce9565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a56565b60200260200101518181518110610d8957610d89611a56565b6020026020010151828281518110610da357610da3611a56565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a56565b602002602001018190525050508080610df390611d02565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a85565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d21565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611ba7565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d4b565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611ba7565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a56565b602002602001015187868581518110610ff257610ff2611a56565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c8d565b6001600160c01b031682828151811061108b5761108b611a56565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a56565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d4b565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611ba7565b60008151811061117657611176611a56565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c8d565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a56565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611ce9565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d6a565b909216918061132981611d7d565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b915060208301356001600160401b038111156113f157600080fd5b8301601f8101851361140257600080fd5b803561141561141082611395565b611365565b8082825260208201915060208360051b85010192508783111561143757600080fd5b6020840193505b8284101561146257833561145181611337565b82526020938401939091019061143e565b809450505050509250929050565b600081518084526020840193506020830160005b828110156114a2578151865260209586019590910190600101611484565b5093949350505050565b6020815260006114bf6020830184611470565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114e3816114c6565b919050565b6000806000606084860312156114fd57600080fd5b833561150881611337565b925060208401356001600160401b0381111561152357600080fd5b8401601f8101861361153457600080fd5b80356001600160401b0381111561154d5761154d61134f565b611560601f8201601f1916602001611365565b81815287602083850101111561157557600080fd5b8160208401602083013760006020838301015280945050505061159a604085016114d8565b90509250925092565b600082825180855260208501945060208160051b8301016020850160005b8381101561164757848303601f190188528151805180855260209182019185019060005b8181101561162e57835180516001600160a01b03168452602080820151818601526040918201516001600160601b031691850191909152909301926060909201916001016115e5565b50506020998a01999094509290920191506001016115c1565b50909695505050505050565b6020815260006114bf60208301846115a3565b600082601f83011261167757600080fd5b813561168561141082611395565b8082825260208201915060208360051b8601019250858311156116a757600080fd5b602085015b8381101561109e5780358352602092830192016116ac565b600080604083850312156116d757600080fd5b82356116e281611337565b915060208301356001600160401b038111156116fd57600080fd5b61170985828601611666565b9150509250929050565b602080825282518282018190526000918401906040840190835b818110156117545783516001600160a01b031683526020938401939092019160010161172d565b509095945050505050565b60008083601f84011261177157600080fd5b5081356001600160401b0381111561178857600080fd5b6020830191508360208260051b85010111156117a357600080fd5b9250929050565b600080600080600080608087890312156117c357600080fd5b86356117ce81611337565b955060208701356117de816114c6565b945060408701356001600160401b038111156117f957600080fd5b8701601f8101891361180a57600080fd5b80356001600160401b0381111561182057600080fd5b89602082840101111561183257600080fd5b6020919091019450925060608701356001600160401b0381111561185557600080fd5b61186189828a0161175f565b979a9699509497509295939492505050565b600081518084526020840193506020830160005b828110156114a257815163ffffffff16865260209586019590910190600101611887565b6020815260008251608060208401526118c760a0840182611873565b90506020840151601f198483030160408501526118e48282611873565b9150506040840151601f198483030160608501526119028282611873565b6060860151858203601f190160808701528051808352919350602090810192508084019190600582901b85010160005b828110156106b957601f1986830301845261194e828651611873565b60209586019594909401939150600101611932565b60008060006060848603121561197857600080fd5b833561198381611337565b925060208401356001600160401b0381111561199e57600080fd5b6119aa86828701611666565b92505060408401356119bb816114c6565b809150509250925092565b602080825282518282018190526000918401906040840190835b818110156117545783518352602093840193909201916001016119e0565b600080600060608486031215611a1357600080fd5b8335611a1e81611337565b92506020840135915060408401356119bb816114c6565b828152604060208201526000611a4e60408301846115a3565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7e57600080fd5b5051919050565b600060208284031215611a9757600080fd5b81516114bf81611337565b600060208284031215611ab457600080fd5b81516001600160401b03811115611aca57600080fd5b8201601f81018413611adb57600080fd5b8051611ae961141082611395565b8082825260208201915060208360051b850101925086831115611b0b57600080fd5b6020840193505b82841015611b2d578351825260209384019390910190611b12565b9695505050505050565b600060208284031215611b4957600080fd5b81516001600160601b03811681146114bf57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b8d57600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215611bb957600080fd5b81516001600160401b03811115611bcf57600080fd5b8201601f81018413611be057600080fd5b8051611bee61141082611395565b8082825260208201915060208360051b850101925086831115611c1057600080fd5b6020840193505b82841015611b2d578351611c2a816114c6565b825260209384019390910190611c17565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c84604083018486611c3b565b95945050505050565b600060208284031215611c9f57600080fd5b81516001600160c01b03811681146114bf57600080fd5b600060208284031215611cc857600080fd5b81516114bf816114c6565b634e487b7160e01b600052601160045260246000fd5b600060018201611cfb57611cfb611cd3565b5060010190565b600060ff821660ff8103611d1857611d18611cd3565b60010192915050565b604081526000611d35604083018587611c3b565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a4e6040830184611470565b8181038181111561133157611331611cd3565b600061ffff821661ffff8103611d1857611d18611cd356fea264697066735822122033585ad22b02fc74fbd447d232f18fbc94c4d2d5f8667d94aaa1ee5226d7192a64736f6c634300081b0033","sourceMap":"540:11298:117:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10650:380;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3037:1255;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11441:390::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5476:3709::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;9602:654::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1757:712::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;10650:380::-;10793:28;10861:9;:16;-1:-1:-1;;;;;10847:31:117;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10847:31:117;;10833:45;;10893:9;10888:136;10912:9;:16;10908:1;:20;10888:136;;;10966:19;-1:-1:-1;;;;;10966:33:117;;11000:9;11010:1;11000:12;;;;;;;;:::i;:::-;;;;;;;10966:47;;;;;;;;;;;;;;-1:-1:-1;;;;;13640:32:197;;;;13622:51;;13610:2;13595:18;;13476:203;10966:47:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10949:11;10961:1;10949:14;;;;;;;;:::i;:::-;;;;;;;;;;:64;10930:3;;10888:136;;;;10650:380;;;;:::o;3037:1255::-;3205:19;3236:28;3267:19;-1:-1:-1;;;;;3267:33:117;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3236:66;;3312:28;3343:19;-1:-1:-1;;;;;3343:33:117;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3312:66;;3388:30;3421:19;-1:-1:-1;;;;;3421:34:117;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3388:69;;3468:29;3517:13;:20;-1:-1:-1;;;;;3500:38:117;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3468:70;;3553:9;3548:699;3572:13;:20;3568:1;:24;3548:699;;;3613:18;3640:13;3654:1;3640:16;;;;;;;;:::i;:::-;;;;;3702:69;;-1:-1:-1;;;3702:69:117;;3640:16;;;;;3702:69;;;14994:36:197;;;15078:10;15066:23;;15046:18;;;15039:51;3640:16:117;-1:-1:-1;;;;;;;;3702:42:117;;;;;14967:18:197;;3702:69:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3702:69:117;;;;;;;;;;;;:::i;:::-;3671:100;;3815:11;:18;-1:-1:-1;;;;;3800:34:117;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;3800:34:117;;-1:-1:-1;;3800:34:117;;;;;;;;;;;;3785:9;3795:1;3785:12;;;;;;;;:::i;:::-;;;;;;:49;;;;3853:9;3848:389;3872:11;:18;3868:1;:22;3848:389;;;3933:289;;;;;;;;3974:14;-1:-1:-1;;;;;3974:40:117;;4015:11;4027:1;4015:14;;;;;;;;:::i;:::-;;;;;;;3974:56;;;;;;;;;;;;;16182:25:197;;16170:2;16155:18;;16036:177;3974:56:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3933:289:117;;;;;4072:11;4084:1;4072:14;;;;;;;;:::i;:::-;;;;;;;3933:289;;;;4116:13;-1:-1:-1;;;;;4116:35:117;;4160:11;4172:1;4160:14;;;;;;;;:::i;:::-;;;;;;;;;;;4116:87;;-1:-1:-1;;;;;;4116:87:117;;;;;;;;;;16692:25:197;;;;16765:4;16753:17;;16733:18;;;16726:45;4116:87:117;16807:23:197;;16787:18;;;16780:51;16665:18;;4116:87:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3933:289:117;;;;3915:9;3925:1;3915:12;;;;;;;;:::i;:::-;;;;;;;3928:1;3915:15;;;;;;;;:::i;:::-;;;;;;;;;;:307;3892:3;;3848:389;;;-1:-1:-1;;;3594:3:117;;3548:699;;;-1:-1:-1;4276:9:117;3037:1255;-1:-1:-1;;;;;;;3037:1255:117:o;11441:390::-;11590:26;11654:11;:18;-1:-1:-1;;;;;11640:33:117;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11640:33:117;;11628:45;;11688:9;11683:142;11707:11;:18;11703:1;:22;11683:142;;;11761:19;-1:-1:-1;;;;;11761:37:117;;11799:11;11811:1;11799:14;;;;;;;;:::i;:::-;;;;;;;11761:53;;;;;;;;;;;;;16182:25:197;;16170:2;16155:18;;16036:177;11761:53:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11746:9;11756:1;11746:12;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11746:68:117;;;:12;;;;;;;;;;;:68;11727:3;;11683:142;;5476:3709;5716:29;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5716:29:117;5757:28;5788:19;-1:-1:-1;;;;;5788:33:117;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5757:66;;5833:52;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5833:52:117;6065:99;;-1:-1:-1;;;6065:99:117;;-1:-1:-1;;;;;6065:55:117;;;;;:99;;6121:20;;6143;;;;6065:99;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6065:99:117;;;;;;;;;;;;:::i;:::-;6011:153;;6322:84;;-1:-1:-1;;;6322:84:117;;-1:-1:-1;;;;;6322:47:117;;;;;:84;;6370:20;;6392:13;;;;6322:84;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6322:84:117;;;;;;;;;;;;:::i;:::-;6279:40;;;:127;6487:13;-1:-1:-1;;;;;6472:36:117;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6425:44:117;;;:83;6523:23;6518:2307;6552:40;;;;-1:-1:-1;6518:2307:117;;;6629:30;6883:20;-1:-1:-1;;;;;6870:41:117;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6870:41:117;;6804:22;:44;;;6849:17;6804:63;;;;;;;;;;:::i;:::-;;;;;;:107;;;;6931:6;6926:1405;6943:31;;;6926:1405;;;7091:29;7144:19;-1:-1:-1;;;;;7144:55:117;;7225:20;;7246:1;7225:23;;;;;;;:::i;:::-;;;;;;;7275:20;7322:22;:51;;;7374:1;7322:54;;;;;;;;:::i;:::-;;;;;;;7144:254;;;;;;;;;;;;;;;;19436:25:197;;;19509:10;19497:23;;;19492:2;19477:18;;19470:51;19557:23;19552:2;19537:18;;19530:51;19424:2;19409:18;;19237:350;7144:254:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7091:307;;7441:21;-1:-1:-1;;;;;7441:26:117;7466:1;7441:26;7433:131;;;;-1:-1:-1;;;7433:131:117;;20089:2:197;7433:131:117;;;20071:21:197;20128:2;20108:18;;;20101:30;20167:34;20147:18;;;20140:62;20238:34;20218:18;;;20211:62;20310:30;20289:19;;;20282:59;20358:19;;7433:131:117;;;;;;;;7750:13;;7764:17;7750:32;;;;;;;;;:::i;:::-;7787:1;-1:-1:-1;;;;;7719:64:117;;7750:32;;;;;;;7719:64;7718:70;;:75;;;;-1:-1:-1;7714:603:117;;8024:13;-1:-1:-1;;;;;8024:46:117;;8096:20;;8117:1;8096:23;;;;;;;:::i;:::-;;;;;;;8151:13;;8165:17;8151:32;;;;;;;;;:::i;:::-;8024:228;;-1:-1:-1;;;;;;8024:228:117;;;;;;;;;;16692:25:197;;;;8151:32:117;;;;;;;16733:18:197;;;16726:45;-1:-1:-1;8024:228:117;16807:23:197;;16787:18;;;16780:51;16665:18;;8024:228:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7934:22;:44;;;7979:17;7934:63;;;;;;;;;;:::i;:::-;;;;;;;7998:22;7934:87;;;;;;;;:::i;:::-;:318;;;;:87;;;;;;;;;;;:318;8274:24;;;;:::i;:::-;;;;7714:603;-1:-1:-1;6976:3:117;;6926:1405;;;;8421:46;8483:22;-1:-1:-1;;;;;8470:36:117;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8470:36:117;;8421:85;;8525:6;8520:185;8541:22;8537:1;:26;8520:185;;;8624:22;:44;;;8669:17;8624:63;;;;;;;;;;:::i;:::-;;;;;;;8688:1;8624:66;;;;;;;;:::i;:::-;;;;;;;8588:30;8619:1;8588:33;;;;;;;;:::i;:::-;:102;;;;:33;;;;;;;;;;;:102;8565:3;;8520:185;;;;8784:30;8718:22;:44;;;8763:17;8718:63;;;;;;;;;;:::i;:::-;;;;;;:96;;;;6615:2210;;6594:19;;;;;:::i;:::-;;;;6518:2307;;;;8835:30;8868:19;-1:-1:-1;;;;;8868:34:117;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9060:78;;-1:-1:-1;;;9060:78:117;;8835:69;;-1:-1:-1;;;;;;9060:41:117;;;;;:78;;9102:13;;;;9117:20;;9060:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9060:78:117;;;;;;;;;;;;:::i;:::-;9018:39;;;:120;-1:-1:-1;9018:39:117;5476:3709;-1:-1:-1;;;;;;;;5476:3709:117:o;9602:654::-;9786:16;9814:35;9852:19;-1:-1:-1;;;;;9852:55:117;;9908:11;9921;9852:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9852:81:117;;;;;;;;;;;;:::i;:::-;9814:119;;9943:30;9990:11;:18;-1:-1:-1;;;;;9976:33:117;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9976:33:117;;9943:66;;10024:9;10019:201;10043:11;:18;10039:1;:22;10019:201;;;10101:19;-1:-1:-1;;;;;10101:55:117;;10157:11;10169:1;10157:14;;;;;;;;:::i;:::-;;;;;;;10173:11;10186:19;10206:1;10186:22;;;;;;;;:::i;:::-;;;;;;;10101:108;;;;;;;;;;;;;;;;19436:25:197;;;19509:10;19497:23;;;19492:2;19477:18;;19470:51;19557:23;19552:2;19537:18;;19530:51;19424:2;19409:18;;19237:350;10101:108:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10082:127:117;:13;10096:1;10082:16;;;;;;;;:::i;:::-;;;;;;;;;;:127;10063:3;;10019:201;;;-1:-1:-1;10236:13:117;9602:654;-1:-1:-1;;;;;9602:654:117:o;1757:712::-;1991:16;;;2005:1;1991:16;;;;;;;;;1920:7;;1929:19;;1920:7;;1991:16;;;;;;;;;;;-1:-1:-1;1991:16:117;1960:47;;2034:10;2017:11;2029:1;2017:14;;;;;;;;:::i;:::-;;;;;;;;;;:27;2070:81;;-1:-1:-1;;;2070:81:117;;2054:13;;-1:-1:-1;;;;;2070:55:117;;;;;:81;;2126:11;;2139;;2070:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2070:81:117;;;;;;;;;;;;:::i;:::-;2152:1;2070:84;;;;;;;;:::i;:::-;;;;;;;;;;;2192:87;;-1:-1:-1;;;2192:87:117;;;;;21982:25:197;;;2054:100:117;22043:23:197;;;22023:18;;;22016:51;2054:100:117;;;22083:18:197;;;22076:34;;;2054:100:117;-1:-1:-1;2169:20:117;;-1:-1:-1;;;;;2192:55:117;;;;;21955:18:197;;2192:87:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2169:110:117;;;2290:26;2319:44;2350:12;2319:30;:44::i;:::-;2290:73;;2382:12;2396:65;2413:19;2434:13;2449:11;2396:16;:65::i;:::-;2374:88;;;;;;;;1757:712;;;;;;:::o;5465:1257:136:-;5532:12;5650:15;5728:23;5764:20;5777:6;5764:12;:20::i;:::-;5754:31;;-1:-1:-1;;;;;5754:31:136;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5754:31:136;;5728:57;;5841:18;6093:9;6088:601;6122:10;:17;6109:10;:30;6108:45;;;;;6149:3;6145:1;:7;6108:45;6088:601;;;6252:1;:6;;;-1:-1:-1;6339:16:136;;;:21;6335:344;;6524:1;6511:16;;6486:10;6497;6486:22;;;;;;;;:::i;:::-;;;;:41;-1:-1:-1;;;;;6486:41:136;;;;;;;;;6650:12;;;;;6335:344;6155:3;;;:::i;:::-;;;6088:601;;;-1:-1:-1;6705:10:136;;5465:1257;-1:-1:-1;;;;5465:1257:136:o;6797:406::-;6853:6;;6897:209;6904:5;;6897:209;;6931:5;6935:1;6931;:5;:::i;:::-;6925:12;;;;7020:7;;;;:::i;:::-;;;;6897:209;;;7122:5;6797:406;-1:-1:-1;;6797:406:136:o;14:153:197:-;-1:-1:-1;;;;;111:31:197;;101:42;;91:70;;157:1;154;147:12;91:70;14:153;:::o;172:127::-;233:10;228:3;224:20;221:1;214:31;264:4;261:1;254:15;288:4;285:1;278:15;304:275;375:2;369:9;440:2;421:13;;-1:-1:-1;;417:27:197;405:40;;-1:-1:-1;;;;;460:34:197;;496:22;;;457:62;454:88;;;522:18;;:::i;:::-;558:2;551:22;304:275;;-1:-1:-1;304:275:197:o;584:183::-;644:4;-1:-1:-1;;;;;669:6:197;666:30;663:56;;;699:18;;:::i;:::-;-1:-1:-1;744:1:197;740:14;756:4;736:25;;584:183::o;772:1176::-;895:6;903;956:2;944:9;935:7;931:23;927:32;924:52;;;972:1;969;962:12;924:52;1011:9;998:23;1030:53;1077:5;1030:53;:::i;:::-;1102:5;-1:-1:-1;1158:2:197;1143:18;;1130:32;-1:-1:-1;;;;;1174:30:197;;1171:50;;;1217:1;1214;1207:12;1171:50;1240:22;;1293:4;1285:13;;1281:27;-1:-1:-1;1271:55:197;;1322:1;1319;1312:12;1271:55;1362:2;1349:16;1385:64;1401:47;1441:6;1401:47;:::i;:::-;1385:64;:::i;:::-;1471:3;1495:6;1490:3;1483:19;1527:2;1522:3;1518:12;1511:19;;1582:2;1572:6;1569:1;1565:14;1561:2;1557:23;1553:32;1539:46;;1608:7;1600:6;1597:19;1594:39;;;1629:1;1626;1619:12;1594:39;1661:2;1657;1653:11;1642:22;;1673:245;1689:6;1684:3;1681:15;1673:245;;;1771:3;1758:17;1788:55;1835:7;1788:55;:::i;:::-;1856:20;;1905:2;1706:12;;;;1896;;;;1673:245;;;1937:5;1927:15;;;;;;772:1176;;;;;:::o;1953:420::-;2006:3;2044:5;2038:12;2071:6;2066:3;2059:19;2103:4;2098:3;2094:14;2087:21;;2142:4;2135:5;2131:16;2165:1;2175:173;2189:6;2186:1;2183:13;2175:173;;;2250:13;;2238:26;;2293:4;2284:14;;;;2321:17;;;;2211:1;2204:9;2175:173;;;-1:-1:-1;2364:3:197;;1953:420;-1:-1:-1;;;;1953:420:197:o;2378:261::-;2557:2;2546:9;2539:21;2520:4;2577:56;2629:2;2618:9;2614:18;2606:6;2577:56;:::i;:::-;2569:64;2378:261;-1:-1:-1;;;2378:261:197:o;2644:121::-;2729:10;2722:5;2718:22;2711:5;2708:33;2698:61;;2755:1;2752;2745:12;2770:132;2837:20;;2866:30;2837:20;2866:30;:::i;:::-;2770:132;;;:::o;2907:1024::-;3022:6;3030;3038;3091:2;3079:9;3070:7;3066:23;3062:32;3059:52;;;3107:1;3104;3097:12;3059:52;3146:9;3133:23;3165:53;3212:5;3165:53;:::i;:::-;3237:5;-1:-1:-1;3293:2:197;3278:18;;3265:32;-1:-1:-1;;;;;3309:30:197;;3306:50;;;3352:1;3349;3342:12;3306:50;3375:22;;3428:4;3420:13;;3416:27;-1:-1:-1;3406:55:197;;3457:1;3454;3447:12;3406:55;3497:2;3484:16;-1:-1:-1;;;;;3515:6:197;3512:30;3509:56;;;3545:18;;:::i;:::-;3587:57;3634:2;3611:17;;-1:-1:-1;;3607:31:197;3640:2;3603:40;3587:57;:::i;:::-;3667:6;3660:5;3653:21;3715:7;3710:2;3701:6;3697:2;3693:15;3689:24;3686:37;3683:57;;;3736:1;3733;3726:12;3683:57;3791:6;3786:2;3782;3778:11;3773:2;3766:5;3762:14;3749:49;3843:1;3838:2;3829:6;3822:5;3818:18;3814:27;3807:38;3864:5;3854:15;;;;;3888:37;3921:2;3910:9;3906:18;3888:37;:::i;:::-;3878:47;;2907:1024;;;;;:::o;3936:1255::-;4007:3;4038;4070:5;4064:12;4097:6;4092:3;4085:19;4129:4;4124:3;4120:14;4113:21;;4187:4;4177:6;4174:1;4170:14;4163:5;4159:26;4155:37;4226:4;4219:5;4215:16;4249:1;4259:906;4273:6;4270:1;4267:13;4259:906;;;4338:16;;;-1:-1:-1;;4334:30:197;4322:43;;4388:13;;4460:9;;4482:22;;;4536:4;4570:13;;;;4526:15;;;4607:1;4621:434;4637:8;4632:3;4629:17;4621:434;;;4710:15;;4760:9;;-1:-1:-1;;;;;4756:35:197;4742:50;;4848:4;4840:13;;;4834:20;4816:16;;;4809:46;4915:4;4907:13;;;4901:20;-1:-1:-1;;;;;4897:53:197;4879:16;;;4872:79;;;;5022:19;;;;4988:4;4977:16;;;;4788:1;4656:11;4621:434;;;-1:-1:-1;;5116:4:197;5141:14;;;;5076:5;;-1:-1:-1;5104:17:197;;;;;-1:-1:-1;4295:1:197;4288:9;4259:906;;;-1:-1:-1;5181:4:197;;3936:1255;-1:-1:-1;;;;;;3936:1255:197:o;5196:383::-;5479:2;5468:9;5461:21;5442:4;5499:74;5569:2;5558:9;5554:18;5546:6;5499:74;:::i;5584:723::-;5638:5;5691:3;5684:4;5676:6;5672:17;5668:27;5658:55;;5709:1;5706;5699:12;5658:55;5749:6;5736:20;5776:64;5792:47;5832:6;5792:47;:::i;5776:64::-;5864:3;5888:6;5883:3;5876:19;5920:4;5915:3;5911:14;5904:21;;5981:4;5971:6;5968:1;5964:14;5956:6;5952:27;5948:38;5934:52;;6009:3;6001:6;5998:15;5995:35;;;6026:1;6023;6016:12;5995:35;6062:4;6054:6;6050:17;6076:200;6092:6;6087:3;6084:15;6076:200;;;6184:17;;6214:18;;6261:4;6252:14;;;;6109;6076:200;;6312:535;6435:6;6443;6496:2;6484:9;6475:7;6471:23;6467:32;6464:52;;;6512:1;6509;6502:12;6464:52;6551:9;6538:23;6570:53;6617:5;6570:53;:::i;:::-;6642:5;-1:-1:-1;6698:2:197;6683:18;;6670:32;-1:-1:-1;;;;;6714:30:197;;6711:50;;;6757:1;6754;6747:12;6711:50;6780:61;6833:7;6824:6;6813:9;6809:22;6780:61;:::i;:::-;6770:71;;;6312:535;;;;;:::o;6852:637::-;7042:2;7054:21;;;7124:13;;7027:18;;;7146:22;;;6994:4;;7225:15;;;7199:2;7184:18;;;6994:4;7268:195;7282:6;7279:1;7276:13;7268:195;;;7347:13;;-1:-1:-1;;;;;7343:39:197;7331:52;;7412:2;7438:15;;;;7403:12;;;;7379:1;7297:9;7268:195;;;-1:-1:-1;7480:3:197;;6852:637;-1:-1:-1;;;;;6852:637:197:o;7494:367::-;7557:8;7567:6;7621:3;7614:4;7606:6;7602:17;7598:27;7588:55;;7639:1;7636;7629:12;7588:55;-1:-1:-1;7662:20:197;;-1:-1:-1;;;;;7694:30:197;;7691:50;;;7737:1;7734;7727:12;7691:50;7774:4;7766:6;7762:17;7750:29;;7834:3;7827:4;7817:6;7814:1;7810:14;7802:6;7798:27;7794:38;7791:47;7788:67;;;7851:1;7848;7841:12;7788:67;7494:367;;;;;:::o;7866:1244::-;8019:6;8027;8035;8043;8051;8059;8112:3;8100:9;8091:7;8087:23;8083:33;8080:53;;;8129:1;8126;8119:12;8080:53;8168:9;8155:23;8187:53;8234:5;8187:53;:::i;:::-;8259:5;-1:-1:-1;8316:2:197;8301:18;;8288:32;8329;8288;8329;:::i;:::-;8380:7;-1:-1:-1;8438:2:197;8423:18;;8410:32;-1:-1:-1;;;;;8454:30:197;;8451:50;;;8497:1;8494;8487:12;8451:50;8520:22;;8573:4;8565:13;;8561:27;-1:-1:-1;8551:55:197;;8602:1;8599;8592:12;8551:55;8642:2;8629:16;-1:-1:-1;;;;;8660:6:197;8657:30;8654:50;;;8700:1;8697;8690:12;8654:50;8745:7;8740:2;8731:6;8727:2;8723:15;8719:24;8716:37;8713:57;;;8766:1;8763;8756:12;8713:57;8797:2;8789:11;;;;;-1:-1:-1;8819:6:197;-1:-1:-1;8878:2:197;8863:18;;8850:32;-1:-1:-1;;;;;8894:32:197;;8891:52;;;8939:1;8936;8929:12;8891:52;8978:72;9042:7;9031:8;9020:9;9016:24;8978:72;:::i;:::-;7866:1244;;;;-1:-1:-1;7866:1244:197;;-1:-1:-1;7866:1244:197;;9069:8;;7866:1244;-1:-1:-1;;;7866:1244:197:o;9115:436::-;9167:3;9205:5;9199:12;9232:6;9227:3;9220:19;9264:4;9259:3;9255:14;9248:21;;9303:4;9296:5;9292:16;9326:1;9336:190;9350:6;9347:1;9344:13;9336:190;;;9415:13;;9430:10;9411:30;9399:43;;9471:4;9462:14;;;;9499:17;;;;9372:1;9365:9;9336:190;;9556:1466;9767:2;9756:9;9749:21;9730:4;9805:6;9799:13;9848:4;9843:2;9832:9;9828:18;9821:32;9876:62;9933:3;9922:9;9918:19;9904:12;9876:62;:::i;:::-;9862:76;;9987:2;9979:6;9975:15;9969:22;10059:2;10055:7;10043:9;10035:6;10031:22;10027:36;10022:2;10011:9;10007:18;10000:64;10087:51;10131:6;10115:14;10087:51;:::i;:::-;10073:65;;;10187:2;10179:6;10175:15;10169:22;10259:2;10255:7;10243:9;10235:6;10231:22;10227:36;10222:2;10211:9;10207:18;10200:64;10287:51;10331:6;10315:14;10287:51;:::i;:::-;10387:2;10375:15;;10369:22;10433;;;-1:-1:-1;;10429:36:197;10422:4;10407:20;;10400:66;10515:21;;10545:22;;;10273:65;;-1:-1:-1;10595:2:197;10680:23;;;;-1:-1:-1;10583:15:197;;;;10515:21;10641:1;10637:14;;;10625:27;;10621:36;10721:1;10731:262;10745:6;10742:1;10739:13;10731:262;;;10835:2;10831:7;10822:6;10814;10810:19;10806:33;10801:3;10794:46;10863:50;10906:6;10897;10891:13;10863:50;:::i;:::-;10948:2;10936:15;;;;10971:12;;;;;10853:60;-1:-1:-1;10767:1:197;10760:9;10731:262;;11027:674;11158:6;11166;11174;11227:2;11215:9;11206:7;11202:23;11198:32;11195:52;;;11243:1;11240;11233:12;11195:52;11282:9;11269:23;11301:53;11348:5;11301:53;:::i;:::-;11373:5;-1:-1:-1;11429:2:197;11414:18;;11401:32;-1:-1:-1;;;;;11445:30:197;;11442:50;;;11488:1;11485;11478:12;11442:50;11511:61;11564:7;11555:6;11544:9;11540:22;11511:61;:::i;:::-;11501:71;;;11624:2;11613:9;11609:18;11596:32;11637;11661:7;11637:32;:::i;:::-;11688:7;11678:17;;;11027:674;;;;;:::o;11706:611::-;11896:2;11908:21;;;11978:13;;11881:18;;;12000:22;;;11848:4;;12079:15;;;12053:2;12038:18;;;11848:4;12122:169;12136:6;12133:1;12130:13;12122:169;;;12197:13;;12185:26;;12240:2;12266:15;;;;12231:12;;;;12158:1;12151:9;12122:169;;12322:558;12428:6;12436;12444;12497:2;12485:9;12476:7;12472:23;12468:32;12465:52;;;12513:1;12510;12503:12;12465:52;12552:9;12539:23;12571:53;12618:5;12571:53;:::i;:::-;12643:5;-1:-1:-1;12721:2:197;12706:18;;12693:32;;-1:-1:-1;12803:2:197;12788:18;;12775:32;12816;12775;12816;:::i;12885:454::-;13196:6;13185:9;13178:25;13239:2;13234;13223:9;13219:18;13212:30;13159:4;13259:74;13329:2;13318:9;13314:18;13306:6;13259:74;:::i;:::-;13251:82;12885:454;-1:-1:-1;;;;12885:454:197:o;13344:127::-;13405:10;13400:3;13396:20;13393:1;13386:31;13436:4;13433:1;13426:15;13460:4;13457:1;13450:15;13684:230;13754:6;13807:2;13795:9;13786:7;13782:23;13778:32;13775:52;;;13823:1;13820;13813:12;13775:52;-1:-1:-1;13868:16:197;;13684:230;-1:-1:-1;13684:230:197:o;13919:297::-;14013:6;14066:2;14054:9;14045:7;14041:23;14037:32;14034:52;;;14082:1;14079;14072:12;14034:52;14114:9;14108:16;14133:53;14180:5;14133:53;:::i;15101:930::-;15196:6;15249:2;15237:9;15228:7;15224:23;15220:32;15217:52;;;15265:1;15262;15255:12;15217:52;15298:9;15292:16;-1:-1:-1;;;;;15323:6:197;15320:30;15317:50;;;15363:1;15360;15353:12;15317:50;15386:22;;15439:4;15431:13;;15427:27;-1:-1:-1;15417:55:197;;15468:1;15465;15458:12;15417:55;15501:2;15495:9;15524:64;15540:47;15580:6;15540:47;:::i;15524:64::-;15610:3;15634:6;15629:3;15622:19;15666:2;15661:3;15657:12;15650:19;;15721:2;15711:6;15708:1;15704:14;15700:2;15696:23;15692:32;15678:46;;15747:7;15739:6;15736:19;15733:39;;;15768:1;15765;15758:12;15733:39;15800:2;15796;15792:11;15781:22;;15812:189;15828:6;15823:3;15820:15;15812:189;;;15918:10;;15941:18;;15988:2;15845:12;;;;15979;;;;15812:189;;;16020:5;15101:930;-1:-1:-1;;;;;;15101:930:197:o;16842:296::-;16911:6;16964:2;16952:9;16943:7;16939:23;16935:32;16932:52;;;16980:1;16977;16970:12;16932:52;17012:9;17006:16;-1:-1:-1;;;;;17055:5:197;17051:38;17044:5;17041:49;17031:77;;17104:1;17101;17094:12;17143:529;17370:10;17358:23;;17340:42;;17418:2;17413;17398:18;;17391:30;;;17437:18;;17430:34;;;-1:-1:-1;;;;;;17476:31:197;;17473:51;;;17520:1;17517;17510:12;17473:51;17554:6;17551:1;17547:14;17611:6;17603;17598:2;17587:9;17583:18;17570:48;17639:22;;;;17663:2;17635:31;;17143:529;-1:-1:-1;;;;17143:529:197:o;17677:949::-;17771:6;17824:2;17812:9;17803:7;17799:23;17795:32;17792:52;;;17840:1;17837;17830:12;17792:52;17873:9;17867:16;-1:-1:-1;;;;;17898:6:197;17895:30;17892:50;;;17938:1;17935;17928:12;17892:50;17961:22;;18014:4;18006:13;;18002:27;-1:-1:-1;17992:55:197;;18043:1;18040;18033:12;17992:55;18076:2;18070:9;18099:64;18115:47;18155:6;18115:47;:::i;18099:64::-;18185:3;18209:6;18204:3;18197:19;18241:2;18236:3;18232:12;18225:19;;18296:2;18286:6;18283:1;18279:14;18275:2;18271:23;18267:32;18253:46;;18322:7;18314:6;18311:19;18308:39;;;18343:1;18340;18333:12;18308:39;18375:2;18371;18367:11;18356:22;;18387:209;18403:6;18398:3;18395:15;18387:209;;;18476:3;18470:10;18493:30;18517:5;18493:30;:::i;:::-;18536:18;;18583:2;18420:12;;;;18574;;;;18387:209;;18631:266;18719:6;18714:3;18707:19;18771:6;18764:5;18757:4;18752:3;18748:14;18735:43;-1:-1:-1;18823:1:197;18798:16;;;18816:4;18794:27;;;18787:38;;;;18879:2;18858:15;;;-1:-1:-1;;18854:29:197;18845:39;;;18841:50;;18631:266::o;18902:330::-;19097:10;19089:6;19085:23;19074:9;19067:42;19145:2;19140;19129:9;19125:18;19118:30;19048:4;19165:61;19222:2;19211:9;19207:18;19199:6;19191;19165:61;:::i;:::-;19157:69;18902:330;-1:-1:-1;;;;;18902:330:197:o;19592:290::-;19662:6;19715:2;19703:9;19694:7;19690:23;19686:32;19683:52;;;19731:1;19728;19721:12;19683:52;19757:16;;-1:-1:-1;;;;;19802:31:197;;19792:42;;19782:70;;19848:1;19845;19838:12;20388:249;20457:6;20510:2;20498:9;20489:7;20485:23;20481:32;20478:52;;;20526:1;20523;20516:12;20478:52;20558:9;20552:16;20577:30;20601:5;20577:30;:::i;20642:127::-;20703:10;20698:3;20694:20;20691:1;20684:31;20734:4;20731:1;20724:15;20758:4;20755:1;20748:15;20774:135;20813:3;20834:17;;;20831:43;;20854:18;;:::i;:::-;-1:-1:-1;20901:1:197;20890:13;;20774:135::o;20914:175::-;20951:3;20995:4;20988:5;20984:16;21024:4;21015:7;21012:17;21009:43;;21032:18;;:::i;:::-;21081:1;21068:15;;20914:175;-1:-1:-1;;20914:175:197:o;21094:331::-;21278:2;21267:9;21260:21;21241:4;21298:61;21355:2;21344:9;21340:18;21332:6;21324;21298:61;:::i;:::-;21290:69;;21407:10;21399:6;21395:23;21390:2;21379:9;21375:18;21368:51;21094:331;;;;;;:::o;21430:347::-;21647:10;21639:6;21635:23;21624:9;21617:42;21695:2;21690;21679:9;21675:18;21668:30;21598:4;21715:56;21767:2;21756:9;21752:18;21744:6;21715:56;:::i;22121:128::-;22188:9;;;22209:11;;;22206:37;;;22223:18;;:::i;22254:180::-;22292:3;22336:6;22329:5;22325:18;22367:6;22358:7;22355:19;22352:45;;22377:18;;:::i","linkReferences":{}},"methodIdentifiers":{"getBatchOperatorFromId(address,bytes32[])":"4d2b57fe","getBatchOperatorId(address,address[])":"31b36bd9","getCheckSignaturesIndices(address,uint32,bytes,bytes32[])":"4f739f74","getOperatorState(address,bytes,uint32)":"3563b0d1","getOperatorState(address,bytes32,uint32)":"cefdc1d4","getQuorumBitmapsAtBlockNumber(address,bytes32[],uint32)":"5c155662"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IRegistryCoordinator\",\"name\":\"registryCoordinator\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"operatorIds\",\"type\":\"bytes32[]\"}],\"name\":\"getBatchOperatorFromId\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IRegistryCoordinator\",\"name\":\"registryCoordinator\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"}],\"name\":\"getBatchOperatorId\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"operatorIds\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IRegistryCoordinator\",\"name\":\"registryCoordinator\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"referenceBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"nonSignerOperatorIds\",\"type\":\"bytes32[]\"}],\"name\":\"getCheckSignaturesIndices\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32[]\",\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[][]\",\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\"}],\"internalType\":\"struct OperatorStateRetriever.CheckSignaturesIndices\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IRegistryCoordinator\",\"name\":\"registryCoordinator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"}],\"name\":\"getOperatorState\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"internalType\":\"struct OperatorStateRetriever.Operator[][]\",\"name\":\"\",\"type\":\"tuple[][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IRegistryCoordinator\",\"name\":\"registryCoordinator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"}],\"name\":\"getOperatorState\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"internalType\":\"struct OperatorStateRetriever.Operator[][]\",\"name\":\"\",\"type\":\"tuple[][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IRegistryCoordinator\",\"name\":\"registryCoordinator\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"operatorIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"}],\"name\":\"getQuorumBitmapsAtBlockNumber\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Layr Labs Inc.\",\"kind\":\"dev\",\"methods\":{\"getBatchOperatorFromId(address,bytes32[])\":{\"details\":\"if an operator is not registered, the operator address will be 0\",\"params\":{\"operators\":\"is the array of operatorIds to get corresponding operator addresses for\",\"registryCoordinator\":\"is the AVS registry coordinator to fetch the operator information from\"}},\"getBatchOperatorId(address,address[])\":{\"details\":\"if an operator is not registered, the operatorId will be 0\",\"params\":{\"operators\":\"is the array of operator address to get corresponding operatorIds for\",\"registryCoordinator\":\"is the AVS registry coordinator to fetch the operator information from\"}},\"getCheckSignaturesIndices(address,uint32,bytes,bytes32[])\":{\"params\":{\"nonSignerOperatorIds\":\"are the ids of the nonsigning operators\",\"quorumNumbers\":\"are the ids of the quorums to get the operator state for\",\"referenceBlockNumber\":\"is the block number to get the indices for\",\"registryCoordinator\":\"is the registry coordinator to fetch the AVS registry information from\"},\"returns\":{\"_0\":\"1) the indices of the quorumBitmaps for each of the operators in the @param nonSignerOperatorIds array at the given blocknumber 2) the indices of the total stakes entries for the given quorums at the given blocknumber 3) the indices of the stakes of each of the nonsigners in each of the quorums they were a part of (for each nonsigner, an array of length the number of quorums they were a part of that are also part of the provided quorumNumbers) at the given blocknumber 4) the indices of the quorum apks for each of the provided quorums at the given blocknumber\"}},\"getOperatorState(address,bytes,uint32)\":{\"params\":{\"blockNumber\":\"is the block number to get the operator state for\",\"quorumNumbers\":\"are the ids of the quorums to get the operator state for\",\"registryCoordinator\":\"is the registry coordinator to fetch the AVS registry information from\"},\"returns\":{\"_0\":\"2d array of Operators. For each quorum, an ordered list of Operators\"}},\"getOperatorState(address,bytes32,uint32)\":{\"params\":{\"blockNumber\":\"is the block number to get the operator state for\",\"operatorId\":\"the id of the operator to fetch the quorums lists \",\"registryCoordinator\":\"is the registry coordinator to fetch the AVS registry information from\"},\"returns\":{\"_0\":\"1) the quorumBitmap of the operator at the given blockNumber 2) 2d array of Operator structs. For each quorum the provided operator was a part of at `blockNumber`, an ordered list of operators.\"}},\"getQuorumBitmapsAtBlockNumber(address,bytes32[],uint32)\":{\"params\":{\"blockNumber\":\"is the block number to get the quorumBitmaps for\",\"operatorIds\":\"are the ids of the operators to get the quorumBitmaps for\",\"registryCoordinator\":\"is the AVS registry coordinator to fetch the operator information from\"}}},\"title\":\"OperatorStateRetriever with view functions that allow to retrieve the state of an AVSs registry system.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getBatchOperatorFromId(address,bytes32[])\":{\"notice\":\"This function returns the operator addresses for each of the operators in the operatorIds array\"},\"getBatchOperatorId(address,address[])\":{\"notice\":\"This function returns the operatorIds for each of the operators in the operators array\"},\"getCheckSignaturesIndices(address,uint32,bytes,bytes32[])\":{\"notice\":\"this is called by the AVS operator to get the relevant indices for the checkSignatures function if they are not running an indexer \"},\"getOperatorState(address,bytes,uint32)\":{\"notice\":\"returns the ordered list of operators (id and stake) for each quorum. The AVS coordinator may call this function directly to get the operator state for a given block number\"},\"getOperatorState(address,bytes32,uint32)\":{\"notice\":\"This function is intended to to be called by AVS operators every time a new task is created (i.e.) the AVS coordinator makes a request to AVS operators. Since all of the crucial information is kept onchain, operators don't need to run indexers to fetch the data.\"},\"getQuorumBitmapsAtBlockNumber(address,bytes32[],uint32)\":{\"notice\":\"this function returns the quorumBitmaps for each of the operators in the operatorIds array at the given blocknumber\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/eigenlayer-middleware/src/OperatorStateRetriever.sol\":\"OperatorStateRetriever\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":@openzeppelin-upgrades/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/\"]},\"sources\":{\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/eigenlayer-middleware/src/OperatorStateRetriever.sol\":{\"keccak256\":\"0x5573c9b7416d08e8b2f3e2e238ca4ba7a0c0fd4e6c6f8d4f7eca5487f26a042a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://98c9e6ec2b3478f3a962d57e280ddb69a93be7035ed7a4cdb775d29b763053af\",\"dweb:/ipfs/QmaMHNFsddfP7fKxaVwn8foWqwp7ySwaD5Lof19bsmsdvg\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IRegistryCoordinator","name":"registryCoordinator","type":"address"},{"internalType":"bytes32[]","name":"operatorIds","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"getBatchOperatorFromId","outputs":[{"internalType":"address[]","name":"operators","type":"address[]"}]},{"inputs":[{"internalType":"contract IRegistryCoordinator","name":"registryCoordinator","type":"address"},{"internalType":"address[]","name":"operators","type":"address[]"}],"stateMutability":"view","type":"function","name":"getBatchOperatorId","outputs":[{"internalType":"bytes32[]","name":"operatorIds","type":"bytes32[]"}]},{"inputs":[{"internalType":"contract IRegistryCoordinator","name":"registryCoordinator","type":"address"},{"internalType":"uint32","name":"referenceBlockNumber","type":"uint32"},{"internalType":"bytes","name":"quorumNumbers","type":"bytes"},{"internalType":"bytes32[]","name":"nonSignerOperatorIds","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"getCheckSignaturesIndices","outputs":[{"internalType":"struct OperatorStateRetriever.CheckSignaturesIndices","name":"","type":"tuple","components":[{"internalType":"uint32[]","name":"nonSignerQuorumBitmapIndices","type":"uint32[]"},{"internalType":"uint32[]","name":"quorumApkIndices","type":"uint32[]"},{"internalType":"uint32[]","name":"totalStakeIndices","type":"uint32[]"},{"internalType":"uint32[][]","name":"nonSignerStakeIndices","type":"uint32[][]"}]}]},{"inputs":[{"internalType":"contract IRegistryCoordinator","name":"registryCoordinator","type":"address"},{"internalType":"bytes","name":"quorumNumbers","type":"bytes"},{"internalType":"uint32","name":"blockNumber","type":"uint32"}],"stateMutability":"view","type":"function","name":"getOperatorState","outputs":[{"internalType":"struct OperatorStateRetriever.Operator[][]","name":"","type":"tuple[][]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"uint96","name":"stake","type":"uint96"}]}]},{"inputs":[{"internalType":"contract IRegistryCoordinator","name":"registryCoordinator","type":"address"},{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"uint32","name":"blockNumber","type":"uint32"}],"stateMutability":"view","type":"function","name":"getOperatorState","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"struct OperatorStateRetriever.Operator[][]","name":"","type":"tuple[][]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"uint96","name":"stake","type":"uint96"}]}]},{"inputs":[{"internalType":"contract IRegistryCoordinator","name":"registryCoordinator","type":"address"},{"internalType":"bytes32[]","name":"operatorIds","type":"bytes32[]"},{"internalType":"uint32","name":"blockNumber","type":"uint32"}],"stateMutability":"view","type":"function","name":"getQuorumBitmapsAtBlockNumber","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]}],"devdoc":{"kind":"dev","methods":{"getBatchOperatorFromId(address,bytes32[])":{"details":"if an operator is not registered, the operator address will be 0","params":{"operators":"is the array of operatorIds to get corresponding operator addresses for","registryCoordinator":"is the AVS registry coordinator to fetch the operator information from"}},"getBatchOperatorId(address,address[])":{"details":"if an operator is not registered, the operatorId will be 0","params":{"operators":"is the array of operator address to get corresponding operatorIds for","registryCoordinator":"is the AVS registry coordinator to fetch the operator information from"}},"getCheckSignaturesIndices(address,uint32,bytes,bytes32[])":{"params":{"nonSignerOperatorIds":"are the ids of the nonsigning operators","quorumNumbers":"are the ids of the quorums to get the operator state for","referenceBlockNumber":"is the block number to get the indices for","registryCoordinator":"is the registry coordinator to fetch the AVS registry information from"},"returns":{"_0":"1) the indices of the quorumBitmaps for each of the operators in the @param nonSignerOperatorIds array at the given blocknumber 2) the indices of the total stakes entries for the given quorums at the given blocknumber 3) the indices of the stakes of each of the nonsigners in each of the quorums they were a part of (for each nonsigner, an array of length the number of quorums they were a part of that are also part of the provided quorumNumbers) at the given blocknumber 4) the indices of the quorum apks for each of the provided quorums at the given blocknumber"}},"getOperatorState(address,bytes,uint32)":{"params":{"blockNumber":"is the block number to get the operator state for","quorumNumbers":"are the ids of the quorums to get the operator state for","registryCoordinator":"is the registry coordinator to fetch the AVS registry information from"},"returns":{"_0":"2d array of Operators. For each quorum, an ordered list of Operators"}},"getOperatorState(address,bytes32,uint32)":{"params":{"blockNumber":"is the block number to get the operator state for","operatorId":"the id of the operator to fetch the quorums lists ","registryCoordinator":"is the registry coordinator to fetch the AVS registry information from"},"returns":{"_0":"1) the quorumBitmap of the operator at the given blockNumber 2) 2d array of Operator structs. For each quorum the provided operator was a part of at `blockNumber`, an ordered list of operators."}},"getQuorumBitmapsAtBlockNumber(address,bytes32[],uint32)":{"params":{"blockNumber":"is the block number to get the quorumBitmaps for","operatorIds":"are the ids of the operators to get the quorumBitmaps for","registryCoordinator":"is the AVS registry coordinator to fetch the operator information from"}}},"version":1},"userdoc":{"kind":"user","methods":{"getBatchOperatorFromId(address,bytes32[])":{"notice":"This function returns the operator addresses for each of the operators in the operatorIds array"},"getBatchOperatorId(address,address[])":{"notice":"This function returns the operatorIds for each of the operators in the operators array"},"getCheckSignaturesIndices(address,uint32,bytes,bytes32[])":{"notice":"this is called by the AVS operator to get the relevant indices for the checkSignatures function if they are not running an indexer "},"getOperatorState(address,bytes,uint32)":{"notice":"returns the ordered list of operators (id and stake) for each quorum. The AVS coordinator may call this function directly to get the operator state for a given block number"},"getOperatorState(address,bytes32,uint32)":{"notice":"This function is intended to to be called by AVS operators every time a new task is created (i.e.) the AVS coordinator makes a request to AVS operators. Since all of the crucial information is kept onchain, operators don't need to run indexers to fetch the data."},"getQuorumBitmapsAtBlockNumber(address,bytes32[],uint32)":{"notice":"this function returns the quorumBitmaps for each of the operators in the operatorIds array at the given blocknumber"}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","@openzeppelin-upgrades/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/","ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/","eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/eigenlayer-middleware/src/OperatorStateRetriever.sol":"OperatorStateRetriever"},"evmVersion":"paris","libraries":{}},"sources":{"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/eigenlayer-middleware/src/OperatorStateRetriever.sol":{"keccak256":"0x5573c9b7416d08e8b2f3e2e238ca4ba7a0c0fd4e6c6f8d4f7eca5487f26a042a","urls":["bzz-raw://98c9e6ec2b3478f3a962d57e280ddb69a93be7035ed7a4cdb775d29b763053af","dweb:/ipfs/QmaMHNFsddfP7fKxaVwn8foWqwp7ySwaD5Lof19bsmsdvg"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"}},"version":1},"id":117} \ No newline at end of file diff --git a/telemetry_api/priv/repo/migrations/.formatter.exs b/telemetry_api/priv/repo/migrations/.formatter.exs new file mode 100644 index 000000000..49f9151ed --- /dev/null +++ b/telemetry_api/priv/repo/migrations/.formatter.exs @@ -0,0 +1,4 @@ +[ + import_deps: [:ecto_sql], + inputs: ["*.exs"] +] diff --git a/telemetry_api/priv/repo/migrations/20240917212329_create_operators.exs b/telemetry_api/priv/repo/migrations/20240917212329_create_operators.exs new file mode 100644 index 000000000..80a5e40fe --- /dev/null +++ b/telemetry_api/priv/repo/migrations/20240917212329_create_operators.exs @@ -0,0 +1,17 @@ +defmodule TelemetryApi.Repo.Migrations.CreateOperators do + use Ecto.Migration + + def change do + create table(:operators, primary_key: false) do + add :address, :string, primary_key: true + add :id, :string + add :stake, :string + add :name, :string + add :version, :string + + timestamps(type: :utc_datetime) + end + + create unique_index(:operators, [:address]) + end +end diff --git a/telemetry_api/priv/repo/seeds.exs b/telemetry_api/priv/repo/seeds.exs new file mode 100644 index 000000000..7b50b07e1 --- /dev/null +++ b/telemetry_api/priv/repo/seeds.exs @@ -0,0 +1,11 @@ +# Script for populating the database. You can run it as: +# +# mix run priv/repo/seeds.exs +# +# Inside the script, you can read and write to any of your +# repositories directly: +# +# TelemetryApi.Repo.insert!(%TelemetryApi.SomeSchema{}) +# +# We recommend using the bang functions (`insert!`, `update!` +# and so on) as they will fail if something goes wrong. diff --git a/telemetry_api/priv/static/favicon.ico b/telemetry_api/priv/static/favicon.ico new file mode 100644 index 000000000..7f372bfc2 Binary files /dev/null and b/telemetry_api/priv/static/favicon.ico differ diff --git a/telemetry_api/priv/static/robots.txt b/telemetry_api/priv/static/robots.txt new file mode 100644 index 000000000..ab7fef159 --- /dev/null +++ b/telemetry_api/priv/static/robots.txt @@ -0,0 +1,5 @@ +# See https://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file +# +# To ban all spiders from the entire site uncomment the next two lines: +User-agent: * +Disallow: / diff --git a/telemetry_api/start.sh b/telemetry_api/start.sh new file mode 100755 index 000000000..41148952d --- /dev/null +++ b/telemetry_api/start.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +source .env + +# Add new environment variables here +env_vars=( + "ENVIRONMENT" + "ALIGNED_CONFIG_FILE" + "OPERATOR_FETCHER_WAIT_TIME_MS" +) + +for var in "${env_vars[@]}"; do + export "$var=${!var}" +done + +mix compile --force #force recompile to get the latest .env values + +elixir --sname telemetry -S mix phx.server diff --git a/telemetry_api/test/support/conn_case.ex b/telemetry_api/test/support/conn_case.ex new file mode 100644 index 000000000..b51e7f0e0 --- /dev/null +++ b/telemetry_api/test/support/conn_case.ex @@ -0,0 +1,38 @@ +defmodule TelemetryApiWeb.ConnCase do + @moduledoc """ + This module defines the test case to be used by + tests that require setting up a connection. + + Such tests rely on `Phoenix.ConnTest` and also + import other functionality to make it easier + to build common data structures and query the data layer. + + Finally, if the test case interacts with the database, + we enable the SQL sandbox, so changes done to the database + are reverted at the end of every test. If you are using + PostgreSQL, you can even run database tests asynchronously + by setting `use TelemetryApiWeb.ConnCase, async: true`, although + this option is not recommended for other databases. + """ + + use ExUnit.CaseTemplate + + using do + quote do + # The default endpoint for testing + @endpoint TelemetryApiWeb.Endpoint + + use TelemetryApiWeb, :verified_routes + + # Import conveniences for testing with connections + import Plug.Conn + import Phoenix.ConnTest + import TelemetryApiWeb.ConnCase + end + end + + setup tags do + TelemetryApi.DataCase.setup_sandbox(tags) + {:ok, conn: Phoenix.ConnTest.build_conn()} + end +end diff --git a/telemetry_api/test/support/data_case.ex b/telemetry_api/test/support/data_case.ex new file mode 100644 index 000000000..7a30b5a25 --- /dev/null +++ b/telemetry_api/test/support/data_case.ex @@ -0,0 +1,58 @@ +defmodule TelemetryApi.DataCase do + @moduledoc """ + This module defines the setup for tests requiring + access to the application's data layer. + + You may define functions here to be used as helpers in + your tests. + + Finally, if the test case interacts with the database, + we enable the SQL sandbox, so changes done to the database + are reverted at the end of every test. If you are using + PostgreSQL, you can even run database tests asynchronously + by setting `use TelemetryApi.DataCase, async: true`, although + this option is not recommended for other databases. + """ + + use ExUnit.CaseTemplate + + using do + quote do + alias TelemetryApi.Repo + + import Ecto + import Ecto.Changeset + import Ecto.Query + import TelemetryApi.DataCase + end + end + + setup tags do + TelemetryApi.DataCase.setup_sandbox(tags) + :ok + end + + @doc """ + Sets up the sandbox based on the test tags. + """ + def setup_sandbox(tags) do + pid = Ecto.Adapters.SQL.Sandbox.start_owner!(TelemetryApi.Repo, shared: not tags[:async]) + on_exit(fn -> Ecto.Adapters.SQL.Sandbox.stop_owner(pid) end) + end + + @doc """ + A helper that transforms changeset errors into a map of messages. + + assert {:error, changeset} = Accounts.create_user(%{password: "short"}) + assert "password is too short" in errors_on(changeset).password + assert %{password: ["password is too short"]} = errors_on(changeset) + + """ + def errors_on(changeset) do + Ecto.Changeset.traverse_errors(changeset, fn {message, opts} -> + Regex.replace(~r"%{(\w+)}", message, fn _, key -> + opts |> Keyword.get(String.to_existing_atom(key), key) |> to_string() + end) + end) + end +end diff --git a/telemetry_api/test/support/fixtures/urls_fixtures.ex b/telemetry_api/test/support/fixtures/urls_fixtures.ex new file mode 100644 index 000000000..f94b63845 --- /dev/null +++ b/telemetry_api/test/support/fixtures/urls_fixtures.ex @@ -0,0 +1,21 @@ +defmodule TelemetryApi.UrlsFixtures do + @moduledoc """ + This module defines test helpers for creating + entities via the `TelemetryApi.Urls` context. + """ + + @doc """ + Generate a operator. + """ + def operator_fixture(attrs \\ %{}) do + {:ok, operator} = + attrs + |> Enum.into(%{ + address: "some address", + version: "some version" + }) + |> TelemetryApi.Urls.create_operator() + + operator + end +end diff --git a/telemetry_api/test/telemetry_api/urls_test.exs b/telemetry_api/test/telemetry_api/urls_test.exs new file mode 100644 index 000000000..618f10f85 --- /dev/null +++ b/telemetry_api/test/telemetry_api/urls_test.exs @@ -0,0 +1,61 @@ +defmodule TelemetryApi.UrlsTest do + use TelemetryApi.DataCase + + alias TelemetryApi.Urls + + describe "operators" do + alias TelemetryApi.Urls.Operator + + import TelemetryApi.UrlsFixtures + + @invalid_attrs %{version: nil, address: nil} + + test "list_operators/0 returns all operators" do + operator = operator_fixture() + assert Urls.list_operators() == [operator] + end + + test "get_operator!/1 returns the operator with given id" do + operator = operator_fixture() + assert Urls.get_operator!(operator.id) == operator + end + + test "create_operator/1 with valid data creates a operator" do + valid_attrs = %{version: "some version", address: "some address"} + + assert {:ok, %Operator{} = operator} = Urls.create_operator(valid_attrs) + assert operator.version == "some version" + assert operator.address == "some address" + end + + test "create_operator/1 with invalid data returns error changeset" do + assert {:error, %Ecto.Changeset{}} = Urls.create_operator(@invalid_attrs) + end + + test "update_operator/2 with valid data updates the operator" do + operator = operator_fixture() + update_attrs = %{version: "some updated version", address: "some updated address"} + + assert {:ok, %Operator{} = operator} = Urls.update_operator(operator, update_attrs) + assert operator.version == "some updated version" + assert operator.address == "some updated address" + end + + test "update_operator/2 with invalid data returns error changeset" do + operator = operator_fixture() + assert {:error, %Ecto.Changeset{}} = Urls.update_operator(operator, @invalid_attrs) + assert operator == Urls.get_operator!(operator.id) + end + + test "delete_operator/1 deletes the operator" do + operator = operator_fixture() + assert {:ok, %Operator{}} = Urls.delete_operator(operator) + assert_raise Ecto.NoResultsError, fn -> Urls.get_operator!(operator.id) end + end + + test "change_operator/1 returns a operator changeset" do + operator = operator_fixture() + assert %Ecto.Changeset{} = Urls.change_operator(operator) + end + end +end diff --git a/telemetry_api/test/telemetry_api_web/controllers/error_json_test.exs b/telemetry_api/test/telemetry_api_web/controllers/error_json_test.exs new file mode 100644 index 000000000..5cb349fdc --- /dev/null +++ b/telemetry_api/test/telemetry_api_web/controllers/error_json_test.exs @@ -0,0 +1,12 @@ +defmodule TelemetryApiWeb.ErrorJSONTest do + use TelemetryApiWeb.ConnCase, async: true + + test "renders 404" do + assert TelemetryApiWeb.ErrorJSON.render("404.json", %{}) == %{errors: %{detail: "Not Found"}} + end + + test "renders 500" do + assert TelemetryApiWeb.ErrorJSON.render("500.json", %{}) == + %{errors: %{detail: "Internal Server Error"}} + end +end diff --git a/telemetry_api/test/telemetry_api_web/controllers/operator_controller_test.exs b/telemetry_api/test/telemetry_api_web/controllers/operator_controller_test.exs new file mode 100644 index 000000000..bcb8b8082 --- /dev/null +++ b/telemetry_api/test/telemetry_api_web/controllers/operator_controller_test.exs @@ -0,0 +1,88 @@ +defmodule TelemetryApiWeb.OperatorControllerTest do + use TelemetryApiWeb.ConnCase + + import TelemetryApi.UrlsFixtures + + alias TelemetryApi.Urls.Operator + + @create_attrs %{ + version: "some version", + address: "some address" + } + @update_attrs %{ + version: "some updated version", + address: "some updated address" + } + @invalid_attrs %{version: nil, address: nil} + + setup %{conn: conn} do + {:ok, conn: put_req_header(conn, "accept", "application/json")} + end + + describe "index" do + test "lists all operators", %{conn: conn} do + conn = get(conn, ~p"/api/operators") + assert json_response(conn, 200)["data"] == [] + end + end + + describe "create operator" do + test "renders operator when data is valid", %{conn: conn} do + conn = post(conn, ~p"/api/operators", operator: @create_attrs) + assert %{"id" => id} = json_response(conn, 201)["data"] + + conn = get(conn, ~p"/api/operators/#{id}") + + assert %{ + "id" => ^id, + "address" => "some address", + "version" => "some version" + } = json_response(conn, 200)["data"] + end + + test "renders errors when data is invalid", %{conn: conn} do + conn = post(conn, ~p"/api/operators", operator: @invalid_attrs) + assert json_response(conn, 422)["errors"] != %{} + end + end + + describe "update operator" do + setup [:create_operator] + + test "renders operator when data is valid", %{conn: conn, operator: %Operator{id: id} = operator} do + conn = put(conn, ~p"/api/operators/#{operator}", operator: @update_attrs) + assert %{"id" => ^id} = json_response(conn, 200)["data"] + + conn = get(conn, ~p"/api/operators/#{id}") + + assert %{ + "id" => ^id, + "address" => "some updated address", + "version" => "some updated version" + } = json_response(conn, 200)["data"] + end + + test "renders errors when data is invalid", %{conn: conn, operator: operator} do + conn = put(conn, ~p"/api/operators/#{operator}", operator: @invalid_attrs) + assert json_response(conn, 422)["errors"] != %{} + end + end + + describe "delete operator" do + setup [:create_operator] + + test "deletes chosen operator", %{conn: conn, operator: operator} do + conn = delete(conn, ~p"/api/operators/#{operator}") + assert response(conn, 204) + + assert_error_sent 404, fn -> + get(conn, ~p"/api/operators/#{operator}") + end + end + end + + defp create_operator(_) do + operator = operator_fixture() + %{operator: operator} + end +end diff --git a/telemetry_api/test/test_helper.exs b/telemetry_api/test/test_helper.exs new file mode 100644 index 000000000..a354f9030 --- /dev/null +++ b/telemetry_api/test/test_helper.exs @@ -0,0 +1,2 @@ +ExUnit.start() +Ecto.Adapters.SQL.Sandbox.mode(TelemetryApi.Repo, :manual)